Skip to content

pepy is a site to get statistics information about any Python package.

License

Notifications You must be signed in to change notification settings

psincraian/pepy

Repository files navigation

pepy-logo

PePy

Important:
This repository contains the legacy public version of PePy. The latest version is now maintained privately. We continue to use this repository solely to track issues and preserve historical references.

📜 About

PePy is a website that provides statistics about Python packages. This repo houses the backend service for PePy.

💖 Sponsors

Our website stays alive thanks to your support and the continued help from our sponsors.

DigitalOcean Referral Badge

User avatar: Samuel ColvinUser avatar: Seth Michael LarsonUser avatar: Guardrails AI

⚒️ Start contributing

I wanted to make the setup of the environment as easy as possible. To start the environment you need the following prerequisites:

Prerequisites

  • bash (+4.3)
  • docker (+17.05)
  • docker-compose (+1.16.1)
  • docker-py (+2.2.1)
  • ansible (+2.3)

Start environment

You only (fingers crossed) need to execute the following to start the environment:

make start-containers

Architecture and patterns

Principally I used some DDD concepts (like value objects, entities, and so on) and also CQS whose objective is to separate commands from queries.

The structure of the code is the following:

  • pepy/application: here is where all the commands and the queries are located.
  • pepy/domain: domain objects like entities, exceptions, and value objects.
  • pepy/infrastructure: infrastructure components like the implementation of the repository class like DB or BigQuery, the Flask web application, the container, and so on.
    • pepy/infrastructure/cli: the command line programs.
    • pepy/infrastructure/container: config files and the dependency injection manager.
    • pepy/infrastructure/api: the api endpoints controller.

FAQ

Where the downloads come from?

The data is retrieved from the official BigQuery repository: https://packaging.python.org/guides/analyzing-pypi-package-downloads/

When the data is updated?

There is a cron that runs every day at 5 pm UTC that retrieves all the new downloads from the previous day.

🚩 License

The code is available under the MIT license.

About

pepy is a site to get statistics information about any Python package.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages