http-dynamix


Namehttp-dynamix JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummaryDynamic HTTP client from httpx
upload_time2025-07-21 02:07:30
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords api-client async automation dynamic-client http-client httpx library pytest python quality-assurance rest-api sync testing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Http Dynamix

[![Ruff Code Quality Badge](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v0.json)](https://docs.astral.sh/ruff/)
[![Documentation Built by Sphinx](https://img.shields.io/badge/Documentation-Built%20with%20Sphinx-blue?logo=read-the-docs&logoColor=white)](https://www.sphinx-doc.org)
[![Project Built with Hatchling](https://img.shields.io/badge/Project-Built%20with%20Hatchling-green?logo=python)](https://hatch.pypa.io/latest/)

Library for creating dynamic HTTP requests in puthon

## Quick Start

This guide helps you get started with Http Dynamix.

## Prerequisites

- Docker installed and running

## Basic Setup with Docker Compose (Recommended)

1.  Create test directory:

``` bash
mkdir -p test-api-service/tests && cd test-api-service
```

2.  create pytest configuration file <span class="title-ref">pytest.ini</span> in the <span class="title-ref">tests</span> directory:

<div class="literalinclude" caption="pytest.ini" linenos="">

../examples/tests/pytest.ini

</div>

3.  Create pytest test cases in \`tests/test_httpbin_org_service.py\`:

<div class="literalinclude" language="python" caption="test_httpbin_org_service.py" linenos="">

../examples/tests/test_httpbin_org_service.py

</div>

4.  Create compose.yaml:

<div class="literalinclude" language="yaml" caption="compose.yaml" linenos="">

../examples/compose.yaml

</div>

5.  Run all tests in parallel:

``` bash
docker compose up --build
```

6.  To run only specified tests, override the command in compose.yaml:

``` yaml
command: ["pytest", "-n", "auto", "tests/test_httpbin_org_service.py"]
```

This uses pytest-xdist for parallel execution.

## Contributing

We welcome contributions to Http Dynamix!
There are many ways to contribute, from improving the documentation, submitting
bug reports and feature requests or writing code which can be incorporated into
the main project itself.

## Local Development Installation

For developers or contributors:

``` bash
# Install mamba-githook for creation of isolated virtual environment, 
# Choose the correct installer for your platform
# Supported: linux-amd64, linux-arm64, windows-amd64, windows-arm64
curl -L https://github.com/aydabd/mamba-githook/releases/download/1.0.1/mamba-githook-installer-linux-arm64 \
    -o mamba-githook-installer && \
    chmod +x mamba-githook-installer && \
    ./mamba-githook-installer install

# Install micromamba via mamba-githook
mamnba-githook install-micromamba
# Activate permanent micromamba in your shell, Then you need to restart your shell
mamba-githook init-shell

# Create virtual environment via micromamba
micromamba create -n http-dynamix-env hatch pandoc

# Activate virtual environment
micromamba activate http-dynamix-env

# Clone repository
git clone ssh://git@github.com:aydabd/http-dynamix.git
cd http-dynamix

# Install development dependencies
# This will install all dependencies from pyproject.toml
hatch env create

# Run hatch for pre-release:all environment
hatch run pre-release:all

# Install the package in editable mode inside the micromamba environment
pip install -e .

# Build documentation in HTML format
hatch run pre-release:docs-html
```

## Docker/Compose Test Execution

You can run all tests in parallel using Docker Compose:

``` bash
docker compose up --build
```

To run only integration tests, override the command in compose.yaml:

``` yaml
command: ["pytest", "-n", "auto", "tests/test_clients_integration.py"]
```

This uses pytest-xdist for parallel execution. The Dockerfile and compose.yaml are set up for both CI and local testing.

## Publish Documentation To Confluence

To publish the documentation to Confluence, you need to virtualenv python and
installed hatch.
Then you need to set the following environment variables into <span class="title-ref">.env</span> file:

``` bash
CONFLUENCE_SERVER_USER=<your_confluence_user-at-server>
CONFLUENCE_API_TOKEN=<your-api-token-for-confluence>
```

After that, you can run the following command to publish the documentation to Confluence:

``` bash
# Publish the documentation to Confluence
hatch run release:all
```

> [!NOTE]
> Ensure your project is released with the version number before publishing the
> documentation to Confluence.

You can find the published documentation at the link provided in the output of
the command.

For more information about documentation publishing, check the
`pyproject.toml` file and `docs/conf.py` file.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "http-dynamix",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "Aydin Abdi <ayd.abd@gmail.com>",
    "keywords": "api-client, async, automation, dynamic-client, http-client, httpx, library, pytest, python, quality-assurance, rest-api, sync, testing",
    "author": null,
    "author_email": "Aydin Abdi <ayd.abd@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/e6/92/683d1125e055344ef80a87088054bea983f44916706ce9ac9fd44ac0a3d9/http_dynamix-1.0.1.tar.gz",
    "platform": null,
    "description": "# Http Dynamix\n\n[![Ruff Code Quality Badge](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v0.json)](https://docs.astral.sh/ruff/)\n[![Documentation Built by Sphinx](https://img.shields.io/badge/Documentation-Built%20with%20Sphinx-blue?logo=read-the-docs&logoColor=white)](https://www.sphinx-doc.org)\n[![Project Built with Hatchling](https://img.shields.io/badge/Project-Built%20with%20Hatchling-green?logo=python)](https://hatch.pypa.io/latest/)\n\nLibrary for creating dynamic HTTP requests in puthon\n\n## Quick Start\n\nThis guide helps you get started with Http Dynamix.\n\n## Prerequisites\n\n- Docker installed and running\n\n## Basic Setup with Docker Compose (Recommended)\n\n1.  Create test directory:\n\n``` bash\nmkdir -p test-api-service/tests && cd test-api-service\n```\n\n2.  create pytest configuration file <span class=\"title-ref\">pytest.ini</span> in the <span class=\"title-ref\">tests</span> directory:\n\n<div class=\"literalinclude\" caption=\"pytest.ini\" linenos=\"\">\n\n../examples/tests/pytest.ini\n\n</div>\n\n3.  Create pytest test cases in \\`tests/test_httpbin_org_service.py\\`:\n\n<div class=\"literalinclude\" language=\"python\" caption=\"test_httpbin_org_service.py\" linenos=\"\">\n\n../examples/tests/test_httpbin_org_service.py\n\n</div>\n\n4.  Create compose.yaml:\n\n<div class=\"literalinclude\" language=\"yaml\" caption=\"compose.yaml\" linenos=\"\">\n\n../examples/compose.yaml\n\n</div>\n\n5.  Run all tests in parallel:\n\n``` bash\ndocker compose up --build\n```\n\n6.  To run only specified tests, override the command in compose.yaml:\n\n``` yaml\ncommand: [\"pytest\", \"-n\", \"auto\", \"tests/test_httpbin_org_service.py\"]\n```\n\nThis uses pytest-xdist for parallel execution.\n\n## Contributing\n\nWe welcome contributions to Http Dynamix!\nThere are many ways to contribute, from improving the documentation, submitting\nbug reports and feature requests or writing code which can be incorporated into\nthe main project itself.\n\n## Local Development Installation\n\nFor developers or contributors:\n\n``` bash\n# Install mamba-githook for creation of isolated virtual environment, \n# Choose the correct installer for your platform\n# Supported: linux-amd64, linux-arm64, windows-amd64, windows-arm64\ncurl -L https://github.com/aydabd/mamba-githook/releases/download/1.0.1/mamba-githook-installer-linux-arm64 \\\n    -o mamba-githook-installer && \\\n    chmod +x mamba-githook-installer && \\\n    ./mamba-githook-installer install\n\n# Install micromamba via mamba-githook\nmamnba-githook install-micromamba\n# Activate permanent micromamba in your shell, Then you need to restart your shell\nmamba-githook init-shell\n\n# Create virtual environment via micromamba\nmicromamba create -n http-dynamix-env hatch pandoc\n\n# Activate virtual environment\nmicromamba activate http-dynamix-env\n\n# Clone repository\ngit clone ssh://git@github.com:aydabd/http-dynamix.git\ncd http-dynamix\n\n# Install development dependencies\n# This will install all dependencies from pyproject.toml\nhatch env create\n\n# Run hatch for pre-release:all environment\nhatch run pre-release:all\n\n# Install the package in editable mode inside the micromamba environment\npip install -e .\n\n# Build documentation in HTML format\nhatch run pre-release:docs-html\n```\n\n## Docker/Compose Test Execution\n\nYou can run all tests in parallel using Docker Compose:\n\n``` bash\ndocker compose up --build\n```\n\nTo run only integration tests, override the command in compose.yaml:\n\n``` yaml\ncommand: [\"pytest\", \"-n\", \"auto\", \"tests/test_clients_integration.py\"]\n```\n\nThis uses pytest-xdist for parallel execution. The Dockerfile and compose.yaml are set up for both CI and local testing.\n\n## Publish Documentation To Confluence\n\nTo publish the documentation to Confluence, you need to virtualenv python and\ninstalled hatch.\nThen you need to set the following environment variables into <span class=\"title-ref\">.env</span> file:\n\n``` bash\nCONFLUENCE_SERVER_USER=<your_confluence_user-at-server>\nCONFLUENCE_API_TOKEN=<your-api-token-for-confluence>\n```\n\nAfter that, you can run the following command to publish the documentation to Confluence:\n\n``` bash\n# Publish the documentation to Confluence\nhatch run release:all\n```\n\n> [!NOTE]\n> Ensure your project is released with the version number before publishing the\n> documentation to Confluence.\n\nYou can find the published documentation at the link provided in the output of\nthe command.\n\nFor more information about documentation publishing, check the\n`pyproject.toml` file and `docs/conf.py` file.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Dynamic HTTP client from httpx",
    "version": "1.0.1",
    "project_urls": null,
    "split_keywords": [
        "api-client",
        " async",
        " automation",
        " dynamic-client",
        " http-client",
        " httpx",
        " library",
        " pytest",
        " python",
        " quality-assurance",
        " rest-api",
        " sync",
        " testing"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "25805bd8d4a1ae2d55f05283767ce27ae9e48bf0ddd8527cad9d37133d9e3536",
                "md5": "0d838ad9a90865a4d1a725b704fbc439",
                "sha256": "5847e6c58706eccac117fd4bc0b48613de7b8798bad2a27ab9f04d6582faa68e"
            },
            "downloads": -1,
            "filename": "http_dynamix-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0d838ad9a90865a4d1a725b704fbc439",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 23097,
            "upload_time": "2025-07-21T02:07:28",
            "upload_time_iso_8601": "2025-07-21T02:07:28.489720Z",
            "url": "https://files.pythonhosted.org/packages/25/80/5bd8d4a1ae2d55f05283767ce27ae9e48bf0ddd8527cad9d37133d9e3536/http_dynamix-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e692683d1125e055344ef80a87088054bea983f44916706ce9ac9fd44ac0a3d9",
                "md5": "a4cfe746da8ce483eb9c25a0d9e05cee",
                "sha256": "4b9ed4ef9b22319aca2fe1d1e0724ddfd1fd8a96fce7181906b8918066c3f7e2"
            },
            "downloads": -1,
            "filename": "http_dynamix-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "a4cfe746da8ce483eb9c25a0d9e05cee",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 19824,
            "upload_time": "2025-07-21T02:07:30",
            "upload_time_iso_8601": "2025-07-21T02:07:30.187630Z",
            "url": "https://files.pythonhosted.org/packages/e6/92/683d1125e055344ef80a87088054bea983f44916706ce9ac9fd44ac0a3d9/http_dynamix-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-21 02:07:30",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "http-dynamix"
}
        
Elapsed time: 1.02698s