Home

Awesome

CircleCI Maintenance PyPI version

Rationale

These utilities are meant to help me with my python packages and their maintenance.

Dependencies

These utilities work best using the following opinionated dependencies

Required Environment Variables

The above commands depend on the following environment variables.

PROJECTS_BASE             -  The local directory where the python projects are based
PROJECT                          -  The name of the project;  It should be a directory name

An example, of a PROJECTS_BASE is:

export PROJECTS_BASE="${HOME}/PycharmProjects" 

This should be set in your shell startup script. For example .bash_profile.

The PROJECT environment variable should be set on a project by project basis. I recommend you use direnv to manage these. An example of a .envrc follows:

export PROJECT=pyutmodel
source pyenv-3.10.6/bin/activate

Python Console Scripts

The Python command line scripts in buildlackey automate the maintenance process by providing the following capabilities

Usage

Usage: runtests [OPTIONS]

  Runs the unit tests for the project specified by the environment variables listed below;
  
  Use the -i/--input-file option to list a set of module names to execute as your  unit tests

  Legal values for -w/--warning are:
      default
      error
      always
      module
      once
      ignore
  
  Environment Variables

      PROJECTS_BASE -  The local directory where the python projects are based
      PROJECT             -  The name of the project;  It should be a directory name

  
  However, if one or the other is not defined the command assumes it is executing in a CI environment and thus the current working directory is the project base directory.

  By default, buildlackey runs the module named tests.TestAll

Options:
  --version                        Show the version and exit.
  -i, --input-file TEXT  Use input file to list the unit tests to execute
  -w, --warning TEXT         Use this option to control Python warnings
  --help                                Show this message and exit.

Usage: runmypy [OPTIONS]

  Runs the mypy checks for the project specified by the following environment variables
  
      PROJECTS_BASE -  The local directory where the python projects are based
      PROJECT              -  The name of the project;  It should be a directory name

  PROJECT is overridden if the developer specifies a package name

Options:
  --version                Show the version and exit.
  -p, --package-name TEXT  Use this option when the package name does not match the project name 
  --help                   Show this message and exit.
Usage: cleanup [OPTIONS]

  Clean the build artifacts for the project specified by the following environment variables
  
      PROJECTS_BASE -  The local directory where the python projects are based
      PROJECT              -  The name of the project;  It should be a directory name

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Usage: package [OPTIONS]

  Creates the deployable for the project specified by the environment variables listed below
  
  Use the -i/--input-file option to specify a set of custom commands to execute to build
  your deployable

  Environment Variables
  PROJECTS_BASE -  The local directory where the  python projects are based   
  PROJECT              -  The name of the project;  It should be a directory name

Options:
  --version              Show the version and exit.
  -i, --input-file TEXT  Use input file to specify a set of commands to execute
  --help                 Show this message and exit.
Usage: prodpush [OPTIONS]

  Pushes the deployable to pypi.  The project is specified by the following environment variables
  
      PROJECTS_BASE -  The local directory where the python projects are based
      PROJECT             -  The name of the project;  It should be a directory name

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Written by <a href="mailto:email@humberto.a.sanchez.ii@gmail.com?subject=Hello Humberto">Humberto A. Sanchez II</a> (C) 2024


Note

For all kind of problems, requests, enhancements, bug reports, etc., please drop me an e-mail.

Humberto's Modified Logo

I am concerned about GitHub's Copilot project

I urge you to read about theGive up GitHub campaign from the Software Freedom Conservancy.

While I do not advocate for all the issues listed there I do not like that a company like Microsoft may profit from open source projects.

I continue to use GitHub because it offers the services I need for free. But, I continue to monitor their terms of service.

Any use of this project's code by GitHub Copilot, past or present, is done without my permission. I do not consent to GitHub's use of this project's code in Copilot.