pepy.tech is a site which aims to show statistics about Python packages.
This is the repository for the backend service, if you want to check the frontend check this repo https://github.com/psincraian/pepy-front
We can keep alive the website thanks to you and also thanks to the following sponsors.
I wanted to make the setup of the environment as easy as possible. To start the environment you need the following prerequisites:
- bash (+4.3)
- docker (+17.05)
- docker-compose (+1.16.1)
- docker-py (+2.2.1)
- ansible (+2.3)
You only (fingers crossed) need to execute the following to start the environment:
make start-containers
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.
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.
The code is available under the MIT license.