Package: buildlackey
RationaleThese utilities are meant to help me with my python packages and their maintenance.DependenciesThese utilities work best using the following opinionated dependenciesPythonvirtual environmentson a per project/repository basisdirenvto set up the project virtual environment and any necessary environment variablesBuilding using setup.py and thebuildmodule to create source and binary distributions.  The documentation ishereUsingpypifor source and binary distributionsA correctly setup$(HOME)/.pypircfor easy interaction withtwineandpypiRequired Environment VariablesThe above commands depend on the following environment variables.PROJECTS_BASE-Thelocaldirectorywherethepythonprojectsarebased
PROJECT-Thenameoftheproject;ItshouldbeadirectorynameAn example, of a PROJECTS_BASE is:exportPROJECTS_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 usedirenvto manage these.  An example of a .envrc follows:exportPROJECT=pyutmodelsourcepyenv-3.10.6/bin/activatePython Console ScriptsThe Python command line scripts in buildlackey automate the maintenance process by providing the following capabilitiesruntests -- Runs the project's unit testsrunmypy  -- Run themypystatic type checkerpackage  --  Creates a pypi package usingbuildand setup.pycleanup  -- Deletes the artifacts created bypackageprodpush -- Pushes the built package topypiUsageruntestsUsage: 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.runmypyUsage: 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.cleanupUsage: 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.packageUsage: 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.prodpushUsage: 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 byHumberto A. Sanchez II(C) 2023NoteFor all kind of problems, requests, enhancements, bug reports, etc.,
please drop me an e-mail.I am concerned about GitHub's Copilot projectI urge you to read about theGive up GitHubcampaign fromthe 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.