pymetacode
A Python package helping to write and maintain Python packages.
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.9%) to scientific vocabulary
Last synced: 6 months ago
·
JSON representation
·
Repository
A Python package helping to write and maintain Python packages.
Basic Info
- Host: GitHub
- Owner: tillbiskup
- License: bsd-2-clause
- Language: Python
- Default Branch: master
- Size: 762 KB
Statistics
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 9
Created over 4 years ago
· Last pushed 7 months ago
Metadata Files
Readme
License
Citation
Roadmap
README.rst
.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.8370310.svg
:target: https://doi.org/10.5281/zenodo.8370310
:align: right
==========
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)
.. code-block:: bash
pymeta write config to mypackage_config.yaml
2) Create the basic Python package structure for your package.
.. code-block:: bash
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:
.. code-block:: bash
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:
.. code-block:: bash
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:
.. code-block:: bash
pip install pymetacode
License
=======
This program is free software: you can redistribute it and/or modify it under the terms of the **BSD License**.
Owner
- Login: tillbiskup
- Kind: user
- Location: Germany
- Website: https://www.till-biskup.de/
- Repositories: 14
- Profile: https://github.com/tillbiskup
Scientist focussing on reproducible research, particularly in spectroscopy
Citation (CITATION.cff)
cff-version: 1.2.0
message: If you use this software, please cite it using these metadata.
title: pymetacode
abstract: >
pymetacode is 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).
authors:
- family-names: Biskup
given-names: Till
orcid: "https://orcid.org/0000-0003-2913-0004"
type: software
license: BSD-2-Clause
repository-code: "https://github.com/tillbiskup/pymetacode"
keywords:
- "metaprogramming"
- "Python packages"
- "automation"
- "code generation"
identifiers:
- description: "The concept DOI of the work."
type: doi
value: 10.5281/zenodo.8370310
GitHub Events
Total
- Push event: 6
Last Year
- Push event: 6
Issues and Pull Requests
Last synced: 7 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 54 last-month
- Total dependent packages: 3
- Total dependent repositories: 1
- Total versions: 9
- Total maintainers: 1
pypi.org: pymetacode
A Python package helping to write and maintain Python packages.
- Homepage: https://www.meta-co.de/
- Documentation: https://python.docs.meta-co.de/
- License: BSD
-
Latest release: 0.6.0
published over 1 year ago
Rankings
Dependent packages count: 10.1%
Dependent repos count: 21.6%
Average: 28.8%
Forks count: 29.8%
Stargazers count: 38.8%
Downloads: 43.8%
Maintainers (1)
Last synced:
7 months ago
Dependencies
setup.py
pypi
- appdirs *
- jinja2 *
- oyaml *