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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b2a26f8 Β· Feb 7, 2025
Feb 6, 2025
Jul 10, 2019
Jul 21, 2023
Feb 1, 2023
Dec 28, 2022
Feb 6, 2025
Nov 1, 2022
May 27, 2018
Dec 16, 2022
Feb 3, 2024
Jan 25, 2025
Feb 7, 2025
Oct 11, 2022

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.