Skip to main content

Automatically distill large foundational models into smaller, in-domain models for deployment

Project description

Python Template 🐍

A template repo holding our common setup for a python project.

Installation

You can install the package using pip

pip install -e .

or for development

pip install -e ".[dev]"

Structure

The project has the following structure

├── .github
│   └── workflows
│       └── test.yml # holds our github action config 
├── .gitignore
├── Makefile
├── README.md
├── setup.py
├── src
│   ├── __init__.py 
│   ├── hello.py 
└── test 
    └── test_hello.py

Code Quality 🧹

We provide two handy commands inside the Makefile, namely:

  • make style to format the code
  • make check_code_quality to check code quality (PEP8 basically)

So far, there is no types checking with mypy. See issue.

Tests 🧪

pytests is used to run our tests.

Publish on PyPi 🚀

Important: Before publishing, edit __version__ in src/init to match the wanted new version.

We use twine to make our life easier. You can publish by using

export PYPI_USERNAME="you_username"
export PYPI_PASSWORD="your_password"
export PYPI_TEST_PASSWORD="your_password_for_test_pypi"
make publish -e PYPI_USERNAME=$PYPI_USERNAME -e PYPI_PASSWORD=$PYPI_PASSWORD -e PYPI_TEST_PASSWORD=$PYPI_TEST_PASSWORD

You can also use token for auth, see pypi doc. In that case,

export PYPI_USERNAME="__token__"
export PYPI_PASSWORD="your_token"
export PYPI_TEST_PASSWORD="your_token_for_test_pypi"
make publish -e PYPI_USERNAME=$PYPI_USERNAME -e PYPI_PASSWORD=$PYPI_PASSWORD -e PYPI_TEST_PASSWORD=$PYPI_TEST_PASSWORD

Note: We will try to push to test pypi before pushing to pypi, to assert everything will work

CI/CD 🤖

We use GitHub actions to automatically run tests and check code quality when a new PR is done on main.

On any pull request, we will check the code quality and tests.

When a new release is created, we will try to push the new code to PyPi. We use twine to make our life easier.

The correct steps to create a new realease are the following:

  • edit __version__ in src/init to match the wanted new version.
  • create a new tag with the release name, e.g. git tag v0.0.1 && git push origin v0.0.1 or from the GitHub UI.
  • create a new release from GitHub UI

The CI will run when you create the new release.

Q&A

Why no cookiecutter?

This is a template repo, it's meant to be used inside GitHub upon repo creation.

Why reinvent the wheel?

There are several very good templates on GitHub, I prefer to use code we wrote instead of blinding taking the most starred template and having features we don't need. From experience, it's better to keep it simple and general enough for our specific use cases.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autodistill-0.0.5.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autodistill-0.0.5-py3-none-any.whl (3.0 kB view details)

Uploaded Python 3

File details

Details for the file autodistill-0.0.5.tar.gz.

File metadata

  • Download URL: autodistill-0.0.5.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for autodistill-0.0.5.tar.gz
Algorithm Hash digest
SHA256 368126d9676e0cab17a56ad1bbfad332b1d88e820391ab3d502147af8f730ad2
MD5 750e265084ced4ea6a52ff2991301a21
BLAKE2b-256 860416d235ea88054f70ff997587ebb0d45e5b31928f916c217c59040b5a34df

See more details on using hashes here.

File details

Details for the file autodistill-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: autodistill-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 3.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for autodistill-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9c845acbe5c8c54377dc958ad1c191d0207a175702b011ab0198938a203681d7
MD5 ec05f8ba1a1da7b1c4af185149e550ef
BLAKE2b-256 ef91a1d8c88f4fa36cff948daa7ca13dc1084e4db8afde73792cf653d310a8d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page