FusePyStarter


NameFusePyStarter JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryA modern Python project forge with pre-configured tooling and CI/CD.
upload_time2025-07-10 13:36:28
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
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"
}
        
Elapsed time: 1.79840s