Skip to main content
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.

Release files for pymetacode 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pymetacode 0.7.0
File Size Uploaded
pymetacode-0.7.0.tar.gz 144.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pymetacode 0.7.0
File Interpreter ABI Platform
pymetacode-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 308.1 kB

Release files / pymetacode-0.7.0.tar.gz

Download URL pymetacode-0.7.0.tar.gz
Size 144.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b93183c113d54435dbbe9c41d5977898a3c1be6ec9a8517367adc6e28d11ba90
BLAKE2b-256 checksum
How to use checksums
0d7655c9c50405c746331aa3348d9ff4df2bf943c6b43e5d79dbdb50288fc55c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.2

Release files / pymetacode-0.7.0-py3-none-any.whl

Download URL pymetacode-0.7.0-py3-none-any.whl
Size 163.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c80ed1d5cbd86087ce3e82ff27ac4f45bd24e996352d97c228b2a04c3ab48dbc
BLAKE2b-256 checksum
How to use checksums
165a3b841bcc5357d046a2acd92789ab590fda20a6580d87c33e13c2b3b229a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.2

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page