Name | FusePyStarter JSON |
Version |
0.1.1
JSON |
| download |
home_page | None |
Summary | A modern Python project forge with pre-configured tooling and CI/CD. |
upload_time | 2025-07-10 13:36:28 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.12 |
license | None |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
FusePyStarter
=============
FusePyStarteris a modern project template designed to simplify the initial setup of Python projects by providing a solid foundation with best practices built in from day one. It helps you avoid common setup pitfalls and enforces consistency so you can focus on what matters: writing great code.
Why FusePyStarter?
------------------
- **Consistency:** Includes EditorConfig and Ruff to maintain uniform code style and linting across your team.
- **Safety:** Integrates MyPy for static type checking to catch bugs early.
- **Automation:** Pre-configured pre-commit hooks automate code quality checks.
- **Productivity:** Environment management and logging setup included for scalable projects.
- **Quality:** Built-in testing and code coverage ensure reliability and maintainability.
With PyFoundry, starting your Python project is no longer a hurdle but a streamlined experience that scales from simple scripts to complex AI engineering workflows.
Repository Links
-------------------
- **Source Code**: https://github.com/sunil-fm/FusePyStarter.git
- **Issue Tracker**: https://github.com/sunil-fm/FusePyStarter/issues
Contents
-----------
Project Initialization
~~~~~~~~~~~~~~~~~~~~~~
The project is configured with tools that promote consistency and maintainability from the beginning:
- `editorconfig`_ — Ensures consistent indentation, line endings, and formatting across different editors.
- `ruff`_ — Ultra-fast linter and formatter for Python.
- `mypy`_ — Static type checker for Python.
- `pre-commit`_ — Framework for managing and maintaining multi-language pre-commit hooks.
Project Setup
~~~~~~~~~~~~~
The core project setup integrates tools for configuration, CLI handling, testing, and automation:
- `dynaconf`_ — Flexible configuration management.
- `fire`_ — CLI generation from Python code.
- `logging`_ — Built-in logging configuration for visibility and debugging.
- `pytest`_ — Simple yet powerful test framework.
- `coverage`_ — Monitors code coverage during test execution.
- `pytest-cov`_ — Plugin for integrating coverage with pytest.
- `tox`_ — Automates testing across multiple Python environments.
Project deployment
~~~~~~~~~~~~~~~~~~
Build docs with Sphinx, automate with GitHub Actions, and publish on GitHub Pages.
- `sphinx`_ — For generating structured project documentation.
- `gh-actions`_ — To automate documentation builds and deployment on every push or pull request, using a CI/CD pipeline.
- `gh-pages`_ — Deploy documentation or project pages directly from the main branch using Sphinx.
Getting Started with uv
----------------------------
1. **Clone the repository**
.. code-block:: bash
git clone https://github.com/sunil-fm/FusePyStarter.git
cd FusePyStarter
2. **Create a virtual environment**
.. code-block:: bash
uv venv .venv
source .venv/bin/activate
3. **Install project dependencies**
.. code-block:: bash
uv sync
Environment Examples
--------------------
Sample `.env.example` file for Dynaconf environment:
.. code-block:: ini
ENV_FOR_DYNACONF=dev
DYNACONF_APP_NAME=FusePyStarter
Sample `.secrets.example` file:
.. code-block:: ini
[default]
access_key = "my_access_key"
secret_key = "my_secret_key"
db_user_name = "username"
db_password = "password"
[dev]
access_key = "my_access_key-dev"
secret_key = "my_secret_key-dev"
db_user_name = "username-dev"
db_password = "password-dev"
[stage]
access_key = "my_access_key-stg"
secret_key = "my_secret_key-stg"
db_user_name = "username-stg"
db_password = "password-stg"
[prod]
access_key = "my_access_key-prod"
secret_key = "my_secret_key-prod"
db_user_name = "username-prod"
db_password = "password-prod"
.. note::
Replace ``.env.examples`` with ``.env`` to configure your working environment, and replace
``.secrets.examples.toml`` with ``.secrets.toml`` to store your actual secret values.
Make sure to exclude ``.secrets.toml`` from version control to keep your secrets secure.
Coming Soon
--------------
Planned future integrations:
- **PyPI Release** — Prepare to publish the package to PyPI.
Contribute or Follow Along
-----------------------------
FusePyStarter is evolving. Star the repository, follow development, or contribute by submitting issues and pull requests!
.. _editorconfig: https://sunil-fm.github.io/FusePyStarter/initialization/editorconfig.html
.. _ruff: https://sunil-fm.github.io/FusePyStarter/initialization/ruff.html
.. _mypy: https://sunil-fm.github.io/FusePyStarter/initialization/mypy.html
.. _pre-commit: https://sunil-fm.github.io/FusePyStarter/initialization/pre-commit.html
.. _dynaconf: https://sunil-fm.github.io/FusePyStarter/setup/dynaconf.html
.. _fire: https://sunil-fm.github.io/FusePyStarter/setup/fire.html
.. _logging: https://sunil-fm.github.io/FusePyStarter/setup/logging.html
.. _pytest: https://sunil-fm.github.io/FusePyStarter/setup/pytest.html
.. _coverage: https://ghimiresunil.github.io/PyFoundry/setup/coverage.html
.. _pytest-cov: https://sunil-fm.github.io/FusePyStarter/setup/pytest-cov.html
.. _tox: https://sunil-fm.github.io/FusePyStarter/setup/tox.html
.. _sphinx: https://sunil-fm.github.io/FusePyStarter/deployment/sphinx.html
.. _gh-actions: https://sunil-fm.github.io/FusePyStarter/deployment/gh-actions.html
.. _gh-pages: https://sunil-fm.github.io/FusePyStarter/deployment/gh-pages.html
Raw data
{
"_id": null,
"home_page": null,
"name": "FusePyStarter",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Sunil Ghimire <sunil.ghimire@fusemachines.com>",
"download_url": "https://files.pythonhosted.org/packages/a9/64/55f87edfac8a7e4b9163147420fbdc885ab667eba72af9d89e14527254ed/fusepystarter-0.1.1.tar.gz",
"platform": null,
"description": "FusePyStarter\n=============\n\nFusePyStarteris a modern project template designed to simplify the initial setup of Python projects by providing a solid foundation with best practices built in from day one. It helps you avoid common setup pitfalls and enforces consistency so you can focus on what matters: writing great code.\n\nWhy FusePyStarter?\n------------------\n\n- **Consistency:** Includes EditorConfig and Ruff to maintain uniform code style and linting across your team.\n- **Safety:** Integrates MyPy for static type checking to catch bugs early.\n- **Automation:** Pre-configured pre-commit hooks automate code quality checks.\n- **Productivity:** Environment management and logging setup included for scalable projects.\n- **Quality:** Built-in testing and code coverage ensure reliability and maintainability.\n\nWith PyFoundry, starting your Python project is no longer a hurdle but a streamlined experience that scales from simple scripts to complex AI engineering workflows.\n\nRepository Links\n-------------------\n\n- **Source Code**: https://github.com/sunil-fm/FusePyStarter.git\n- **Issue Tracker**: https://github.com/sunil-fm/FusePyStarter/issues\n\nContents\n-----------\n\nProject Initialization\n~~~~~~~~~~~~~~~~~~~~~~\n\nThe project is configured with tools that promote consistency and maintainability from the beginning:\n\n- `editorconfig`_ \u2014 Ensures consistent indentation, line endings, and formatting across different editors.\n- `ruff`_ \u2014 Ultra-fast linter and formatter for Python.\n- `mypy`_ \u2014 Static type checker for Python.\n- `pre-commit`_ \u2014 Framework for managing and maintaining multi-language pre-commit hooks.\n\nProject Setup\n~~~~~~~~~~~~~\n\nThe core project setup integrates tools for configuration, CLI handling, testing, and automation:\n\n- `dynaconf`_ \u2014 Flexible configuration management.\n- `fire`_ \u2014 CLI generation from Python code.\n- `logging`_ \u2014 Built-in logging configuration for visibility and debugging.\n- `pytest`_ \u2014 Simple yet powerful test framework.\n- `coverage`_ \u2014 Monitors code coverage during test execution.\n- `pytest-cov`_ \u2014 Plugin for integrating coverage with pytest.\n- `tox`_ \u2014 Automates testing across multiple Python environments.\n\nProject deployment\n~~~~~~~~~~~~~~~~~~\n\nBuild docs with Sphinx, automate with GitHub Actions, and publish on GitHub Pages.\n\n- `sphinx`_ \u2014 For generating structured project documentation.\n- `gh-actions`_ \u2014 To automate documentation builds and deployment on every push or pull request, using a CI/CD pipeline.\n- `gh-pages`_ \u2014 Deploy documentation or project pages directly from the main branch using Sphinx.\n\nGetting Started with uv\n----------------------------\n\n1. **Clone the repository**\n\n .. code-block:: bash\n\n git clone https://github.com/sunil-fm/FusePyStarter.git\n cd FusePyStarter\n\n2. **Create a virtual environment**\n\n .. code-block:: bash\n\n uv venv .venv\n source .venv/bin/activate\n\n3. **Install project dependencies**\n\n .. code-block:: bash\n\n uv sync\n\nEnvironment Examples\n--------------------\n\nSample `.env.example` file for Dynaconf environment:\n\n.. code-block:: ini\n\n ENV_FOR_DYNACONF=dev\n DYNACONF_APP_NAME=FusePyStarter\n\nSample `.secrets.example` file:\n\n.. code-block:: ini\n\n [default]\n access_key = \"my_access_key\"\n secret_key = \"my_secret_key\"\n db_user_name = \"username\"\n db_password = \"password\"\n\n [dev]\n access_key = \"my_access_key-dev\"\n secret_key = \"my_secret_key-dev\"\n db_user_name = \"username-dev\"\n db_password = \"password-dev\"\n\n [stage]\n access_key = \"my_access_key-stg\"\n secret_key = \"my_secret_key-stg\"\n db_user_name = \"username-stg\"\n db_password = \"password-stg\"\n\n [prod]\n access_key = \"my_access_key-prod\"\n secret_key = \"my_secret_key-prod\"\n db_user_name = \"username-prod\"\n db_password = \"password-prod\"\n\n.. note::\n\n Replace ``.env.examples`` with ``.env`` to configure your working environment, and replace\n ``.secrets.examples.toml`` with ``.secrets.toml`` to store your actual secret values.\n\n Make sure to exclude ``.secrets.toml`` from version control to keep your secrets secure.\n\nComing Soon\n--------------\n\nPlanned future integrations:\n\n- **PyPI Release** \u2014 Prepare to publish the package to PyPI.\n\nContribute or Follow Along\n-----------------------------\n\nFusePyStarter is evolving. Star the repository, follow development, or contribute by submitting issues and pull requests!\n\n.. _editorconfig: https://sunil-fm.github.io/FusePyStarter/initialization/editorconfig.html\n.. _ruff: https://sunil-fm.github.io/FusePyStarter/initialization/ruff.html\n.. _mypy: https://sunil-fm.github.io/FusePyStarter/initialization/mypy.html\n.. _pre-commit: https://sunil-fm.github.io/FusePyStarter/initialization/pre-commit.html\n.. _dynaconf: https://sunil-fm.github.io/FusePyStarter/setup/dynaconf.html\n.. _fire: https://sunil-fm.github.io/FusePyStarter/setup/fire.html\n.. _logging: https://sunil-fm.github.io/FusePyStarter/setup/logging.html\n.. _pytest: https://sunil-fm.github.io/FusePyStarter/setup/pytest.html\n.. _coverage: https://ghimiresunil.github.io/PyFoundry/setup/coverage.html\n.. _pytest-cov: https://sunil-fm.github.io/FusePyStarter/setup/pytest-cov.html\n.. _tox: https://sunil-fm.github.io/FusePyStarter/setup/tox.html\n.. _sphinx: https://sunil-fm.github.io/FusePyStarter/deployment/sphinx.html\n.. _gh-actions: https://sunil-fm.github.io/FusePyStarter/deployment/gh-actions.html\n.. _gh-pages: https://sunil-fm.github.io/FusePyStarter/deployment/gh-pages.html\n",
"bugtrack_url": null,
"license": null,
"summary": "A modern Python project forge with pre-configured tooling and CI/CD.",
"version": "0.1.1",
"project_urls": {
"Documentation": "https://sunil-fm.github.io/FusePyStarter/",
"Homepage": "https://sunil-fm.github.io/FusePyStarter/",
"Repository": "https://github.com/sunil-fm/FusePyStarter"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "dbe5c09bc3a945c4af0785e022223aac8a06b17fe50ac2d015611bf5ead3d54d",
"md5": "3c805fc1116b11027a7c03e89b1ee2ed",
"sha256": "814cc08313ef4410bdea178d5b576bfdfbe2798aebfbde39fcae44cf559d76be"
},
"downloads": -1,
"filename": "fusepystarter-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3c805fc1116b11027a7c03e89b1ee2ed",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 9886,
"upload_time": "2025-07-10T13:36:28",
"upload_time_iso_8601": "2025-07-10T13:36:28.987781Z",
"url": "https://files.pythonhosted.org/packages/db/e5/c09bc3a945c4af0785e022223aac8a06b17fe50ac2d015611bf5ead3d54d/fusepystarter-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a96455f87edfac8a7e4b9163147420fbdc885ab667eba72af9d89e14527254ed",
"md5": "52c92466eb1042b0a4e40077232ec6bb",
"sha256": "f8b53ae444a2e12a798c1b59df8e2e93c23998f5b825cec82422fd5be162d137"
},
"downloads": -1,
"filename": "fusepystarter-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "52c92466eb1042b0a4e40077232ec6bb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 37805,
"upload_time": "2025-07-10T13:36:28",
"upload_time_iso_8601": "2025-07-10T13:36:28.251167Z",
"url": "https://files.pythonhosted.org/packages/a9/64/55f87edfac8a7e4b9163147420fbdc885ab667eba72af9d89e14527254ed/fusepystarter-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-10 13:36:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sunil-fm",
"github_project": "FusePyStarter",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "fusepystarter"
}