Skip to main content

A Python package helping to write and maintain Python packages.

Project description

https://zenodo.org/badge/DOI/10.5281/zenodo.8370310.svg

pymetacode

A Python package helping to write and maintain Python packages.

Code that writes code – yes, that’s correct. Automating the boring stuff, one could say, or helping to focus on the creative part of programming. In any case, the idea for this package stems from experience with a couple of Python projects, and as such it is pretty opinionated, focussing on personal needs regarding structure and layout. Nevertheless, it tries to be as user-friendly as possible, coming with an intuitive command-line interface (CLI).

What is the difference to CookieCutter and alike? It does not only create a project structure for you once, but it helps you to maintain your projects, i.e., adding modules, classes, functions together with documentation stubs and tests – following good practices of software development.

Want to get an idea? Here you go. Creating a new package would be a two-step process:

  1. Write a configuration file for your new package (and afterwards fill it with sensible content)

pymeta write config to mypackage_config.yaml
  1. Create the basic Python package structure for your package.

pymeta create package from mypackage_config.yaml

Once you have your package structure, you can add modules, classes, and functions to your package from within the package’s root directory at any time:

pymeta add module mymodule
pymeta add class MyClass to mymodule
pymeta add function my_function to mymodule

If you ever want to add a graphical user interface (GUI) to your project, this is (now) possible as well:

pymeta add gui
pymeta add window mysubwindow

And now - happy coding!

Features

A list of features:

  • Create initial package structure (directory layout, files)

  • Add module, class, and function scaffolds to an existing project, including tests and API documentation

  • Add initial (Qt) GUI subpackage structure (directory layout, files)

  • Add (Qt) GUI window scaffolds to existing project, including tests and API documentation

  • Intuitive command-line interface (CLI)

  • Initialise git repository; automatically incrementing version number with each commit

And to make it even more convenient for users and future-proof:

  • Open source project written in Python (>= 3.7)

  • Developed fully test-driven

  • Extensive user and API documentation

Installation

To install the pymetacode package on your computer (sensibly within a Python virtual environment), open a terminal (activate your virtual environment), and type in the following:

pip install pymetacode

License

This program is free software: you can redistribute it and/or modify it under the terms of the BSD License.

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

pymetacode-0.7.0.tar.gz (144.4 kB view details)

Uploaded Source

Built Distribution

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

pymetacode-0.7.0-py3-none-any.whl (163.7 kB view details)

Uploaded Python 3

File details

Details for the file pymetacode-0.7.0.tar.gz.

File metadata

  • Download URL: pymetacode-0.7.0.tar.gz
  • Upload date:
  • Size: 144.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for pymetacode-0.7.0.tar.gz
Algorithm Hash digest
SHA256 b93183c113d54435dbbe9c41d5977898a3c1be6ec9a8517367adc6e28d11ba90
MD5 088bcfcdc8df389d30eed3797044255f
BLAKE2b-256 0d7655c9c50405c746331aa3348d9ff4df2bf943c6b43e5d79dbdb50288fc55c

See more details on using hashes here.

File details

Details for the file pymetacode-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: pymetacode-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 163.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for pymetacode-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c80ed1d5cbd86087ce3e82ff27ac4f45bd24e996352d97c228b2a04c3ab48dbc
MD5 95ca5a5c43c99c5b84dbe33755a24039
BLAKE2b-256 165a3b841bcc5357d046a2acd92789ab590fda20a6580d87c33e13c2b3b229a5

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