Skip to main content

No project description provided

Project description

How to create a new python project with projen

  1. run pj new python --name=kaito_model (pj is an alias for npx projen)

  2. configure .projenrc.py by adding below

     project = PythonProject(
         ...
         homepage="",
         license=None,
         project_type=ProjectType.LIB, # or ProjectType.APP if this is not a library
         pip=False,
         venv=False,
         setuptools=False,
         poetry=True,
         poetry_options={
             "repository": "https://github.com/MetaSearch-IO/KaitoModelPython.git",
         },
         deps=[
             "python@^3.9",
         ],
     )
    

    Note that python dependency is required by poetry and the version should be at least 3.7

  3. increase the version in .projenrc.py if necessary.

  4. setup the poetry environment by running poetry env use <PATH_TO_PROJECT>/.env/bin/python3.9 (or your desired python version)

    1. see poetry docs for the exact env path.
    2. you may also need to change the IDE interpreter to the same path, otherwise the IDE will not be able to find the dependencies.
  5. run pj build to install dependencies and generate artifacts.

  6. if not already, setup pypi main token by poetry config pypi-token.pypi <main-token>, find main token in notion doc

  7. run pj publish to upload a new version to pypi.

How to adopt projen to an existing python project

  1. run pj new python, the script will recognize your project name and create a .projenrc.py file.
  2. delete the content inside the newly created <project-name> folder, move content from src (or other folder name with existing source files) to <project-name>, and delete the src folder. Move the test files to <project-name>/tests as well.
    1. you may want to change the module_name in .projenrc.py, note that only lowercase letters and underscores are allowed.
  3. refer to How to create a new python project with projen step 2 till the end, configure the .projenrc.py file.
  4. additionally, you need to base on the existing setup.cfg (or requirements.txt), add the dependencies to .projenrc.py file. Then delete the setup.cfg (or requirements.txt) file.

How to automate the release process

  1. create a project specific pypi token with repo scope, and add it to the github secrets as PYPI_API_TOKEN. Or ask your admin to do it for you.

Bonus

How to enforce pre commit actions (for any language)

  1. install pre-commit and add pre-commit to deps list.

  2. create a pre-commit configuration file .pre-commit-config.yaml similar to below

    # See https://pre-commit.com for more information
    # See https://pre-commit.com/hooks.html for more hooks
    repos:
      - repo: https://github.com/pre-commit/pre-commit-hooks
        rev: v3.2.0
        hooks:
          - id: trailing-whitespace
          - id: end-of-file-fixer
            exclude: ^\.* # Most dot files managed by projen and are read only
          - id: check-yaml
          - id: check-added-large-files
    
  3. run pre-commit install

  4. (optional) run pre-commit autoupdate to update hooks to the latest version

How to run github actions locally

  1. install act

  2. (optional) create an act environment variables fle .actenv with extra env variables, some examples could be

    GITHUB_TOKEN=<your-github-token>
    PYPI_API_TOKEN=<your-pypi-token>
    

    Note that act will try to load file .env as environment variables, but it will not work because .env now it's a virtual environment folder managed by projen. So we need to create a new file.

  3. run act --env-file .actenv to run the github actions locally.

    1. the first time run act will let you choose default image, you should choose at least Medium image.
    2. make an alias for this command for easier use alias act='act --env-file .actenv'

TODO: Run projen as pre-commit hook to ensure the project is up to date

TODO: Auto bump the version number

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

kaito_model-0.1.4.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

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

kaito_model-0.1.4-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file kaito_model-0.1.4.tar.gz.

File metadata

  • Download URL: kaito_model-0.1.4.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for kaito_model-0.1.4.tar.gz
Algorithm Hash digest
SHA256 81dc9be3ec3d0dc05864a1385fcf98a513fad414a7e8b9a936458d0c5729dde2
MD5 93bd74165e89ca9688abd98b0c9a899c
BLAKE2b-256 7af23d18074c176d5968d4b3608bfa10270d70d6df756c8c7228daca3f6c84a7

See more details on using hashes here.

File details

Details for the file kaito_model-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: kaito_model-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for kaito_model-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4888f478bdd8d61294fe14bac5d6888f5ffd19722a345da9109a46e2c56e5a89
MD5 f0344c2eea213132d6488093fae97df6
BLAKE2b-256 869b5327d0444131e5155a4bd476066459a3543aab7da1c0cfe2993fe4286e6f

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