python-internal-privat


Namepython-internal-privat JSON
Version 1.1.1 PyPI version JSON
download
home_pagehttps://gitlab.onix.ua/onix-systems/python-internal-privat
SummaryThis module is designed for quick interaction with the privatbank API.
upload_time2024-01-26 12:56:07
maintainer
docs_urlNone
authorihor.sotnyk
requires_python>=3.6
license
keywords files speedfiles
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## python-internal-privat
This module is designed for quick interaction with the privatbank API.

## Name
python-internal-privat

## Installation
This framework is published at the PyPI, install it with pip:

  1.This package makes it possible to use module methods in synchronous frameworks:

    pip install python-internal-privat[http]

  2.This package makes it possible to use module methods in asynchronous frameworks:

    pip install python-internal-privat[aio]

  3.This package makes it possible to use ready-made views with a synchronous script based on the Django Rest framework:

    pip install python-internal-privat[drf]

  To get started, add the following packages to INSTALLED_APPS:

    INSTALLED_APPS = [
        ...
        'rest_framework',
        'drf_privat',
    ]

  Include drf_mono urls to your urls.py:

      urlpatterns = [
          ...
          path('privat/', include('drf_privat.urls', namespace='drf_privat')),
      ]

  4.This package makes it possible to use ready-made routers with an asynchronous script based on the FastAPI framework:

    pip install python-internal-privat[fastapi]

  5.To install all packages at once:

    pip install python-internal-privat[all]

## Usage
1. First, install the "Autoclient" module of the "Privat24 for Business" complex designed to serve corporate clients and private entrepreneurs."Autoclient" is software that allows you to set up periodic automatic receipt of statements / account balances and import payments into Privat24.
2. Then use this token to obtain personal data of a privatbank client.
3. For a synchronous request use this token and your account's iban to initialize client:

    from sync_privat.manager import SyncPrivatManager

    token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    iban = "UAxxxxxxxxxxxxxxxxxxxxxxxxxxx"

    mng = SyncPrivatManager(token, iban)

3. For a asynchronous request use this token and your account's iban to initialize client:

    from async_privat.manager import AsyncPrivatManager

    token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    iban = "UAxxxxxxxxxxxxxxxxxxxxxxxxxxx"

    mng = AsyncPrivatManager(token, iban)

## Methods
Get currencies (cashe rate)
PrivatBank cash rate in branches
```python
>>> mng.get_currencies(cashe_rate=True)
{
  "code": 200,  
  [
    {
      "ccy": "EUR",
      "base_ccy": "UAH",
      "buy": "40.80000",
      "sale": "41.80000"
    },
    {
      "ccy": "USD",
      "base_ccy": "UAH",
      "buy": "37.30000",
      "sale": "37.80000"
    }
  ]
}

```

Get currencies (non cashe rate)
Non-cash rate of PrivatBank conversion by cards, Privat24, replenishment of deposits
```python
>>> mng.get_currency(cashe_rate=False)
{
  "code": 200,
  [
    {
      "ccy": "EUR",
      "base_ccy": "UAH",
      "buy": "40.44000",
      "sale": "41.49378"
    },
    {
      "ccy": "USD",
      "base_ccy": "UAH",
      "buy": "37.07500",
      "sale": "37.73585"
    }
  ]
}

```

Get client info
```python
>>> mng.get_client_info()
{
  "code": 200,
  {
    "status": "SUCCESS",
    "type": "balances",
    "exist_next_page": false,
    "balances": [
      {
        "acc": "UAxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "currency": "UAH",
        "balanceIn": "xx",
        "balanceInEq": "xx",
        "balanceOut": "xx",
        "balanceOutEq": "xx",
        "turnoverDebt": "xx",
        "turnoverDebtEq": "xx",
        "turnoverCred": "xx",
        "turnoverCredEq": "xx",
        "bgfIBrnm": " ",
        "brnm": "KPPN",
        "dpd": "xx.xx.xxxx xx:xx:xx",
        "nameACC": "xxxxxxxxxx",
        "state": "a",
        "atp": "T",
        "flmn": "KP",
        "date_open_acc_reg": "xx.xx.xxxx xx:xx:xx",
        "date_open_acc_sys": "xx.xx.xxxx xx:xx:xx",
        "date_close_acc": "xx.xx.xx xx:xx:xx",
        "is_final_bal": false
      }
    ]
  }
}
```

Get balance
```python
>>> mng.get_balance()
{
  "code": 200,
  {
    "balance": "x.xx"
  }
}
```

Get statement
```python
>>> period = 31
>>> limit = 100
>>> mng.get_statement(period, limit)
{
  "code": 200,
  {
    "status": "SUCCESS",
    "type": "transactions",
    "exist_next_page": 'false',
    "next_page_id": "2988607044_online",
    "transactions": [
      {
        "AUT_MY_CRF": "xxxxxxxxxx",
        "AUT_MY_MFO": "xxxxxx",
        "AUT_MY_ACC": "UAxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "AUT_MY_NAM": "xxxxxxxxxx",
        "AUT_MY_MFO_NAME": "АТ КБ \"ПРИВАТБАНК\"",
        "AUT_MY_MFO_CITY": "Дніпро",
        "AUT_CNTR_CRF": "xxxxxxxxxx",
        "AUT_CNTR_MFO": "305299",
        "AUT_CNTR_ACC": "UAxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "AUT_CNTR_NAM": "xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx",
        "AUT_CNTR_MFO_NAME": "АТ КБ \"ПРИВАТБАНК\"",
        "AUT_CNTR_MFO_CITY": "Дніпро",
        "CCY": "UAH",
        "FL_REAL": "r",
        "PR_PR": "r",
        "DOC_TYP": "p",
        "NUM_DOC": "autoclient",
        "DAT_KL": "xx.xx.xxxx",
        "DAT_OD": "xx.xx.xxxx",
        "OSND": "xxxx **** **** xxxx test create pmnt to rest API",
        "SUM": "x.xx",
        "SUM_E": "x.xx",
        "REF": "xxxxxxxxxxxxxx",
        "REFN": "x",
        "TIM_P": "xx:xx",
        "DATE_TIME_DAT_OD_TIM_P": "xx.xx.xxxx xx:xx:xx",
        "ID": "2934180427",
        "TRANTYPE": "D",
        "DLR": "xxx/xxxxxxxx",
        "TECHNICAL_TRANSACTION_ID": "xxxxxxxxxx_online",
        "UETR": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "ULTMT": "N"
      },
      ...
    ]
  }
}
```

Create payment
```python
>>> recipient = 5363************
>>> amount = 0.01
>>> mng.create_payment(recipient, amount)
{
  "code": 200,
  {
    "code": 201,
    "detail": {
      "payment_data": {
        "can_copy": "1",
        "can_edit": "1",
        "checked_on_pred": "true",
        "document_number": "autoclient",
        "document_type": "cr",
        "fields_for_sign": {
          "fields": [
            "payment_ref",
            "user_id",
            "document_type",
            "document_number",
            "payer_account",
            "payment_accept_date",
            "recipient_account",
            "recipient_card",
            "recipient_nceo",
            "payment_naming",
            "payment_amount",
            "payment_destination",
            "payment_ccy",
            "recipient_document_series",
            "recipient_document_number",
            "recipient_document_id_number",
            "recipient_country_code",
            "payer_ultmt_nceo",
            "payer_ultmt_name",
            "payer_ultmt_document_series",
            "payer_ultmt_document_number",
            "payer_ultmt_document_id_number",
            "recipient_ultmt_nceo",
            "recipient_ultmt_name",
            "recipient_ultmt_document_series",
            "recipient_ultmt_document_number",
            "recipient_ultmt_document_id_number",
            "struct_code",
            "struct_category",
            "struct_type"
          ],
          "version": "v3.4.0"
        },
        "id": "xxxxxxxxxxxxxxxxxxx",
        "internal_type": "card",
        "level_sign": {
          "1_sign_level": "false"
        },
        "payer_account": "UAxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "payer_bank_name": "АТ КБ \"ПРИВАТБАНК\"",
        "payer_name": "ФОП xxxxxx xxxxx xxxxxxx",
        "payer_nceo": "xxxxxxxxxx",
        "payment_amount": "0.01",
        "payment_ccy": "UAH",
        "payment_date_unix": "xxxxxxxxxxxxxxxxxxx",
        "payment_destination": "test create pmnt to rest API",
        "payment_naming": "ПАО, ПАО КБ ПРИВАТБАНК",
        "payment_ref": "xxxxxxxxxxxxxxxxxxx",
        "payment_sign": [],
        "payment_status": "new",
        "payment_status_short": "n",
        "recipient_card": "xxxxxxxxxxxxxxxx",
        "recipient_nceo": "xxxxxxxx",
        "service_update_utime": "xxxxxxxxxx",
        "source": "aup",
        "tabs": [
          "all",
          "saved"
        ],
        "user_id": "xxxxxxxx"
      },
      "payment_pack_ref": "xxxxxxxxxxxx",
      "payment_ref": "xxxxxxxxxxxxxxxxxxx"
    }
  }
}
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://gitlab.onix.ua/onix-systems/python-internal-privat",
    "name": "python-internal-privat",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "files speedfiles",
    "author": "ihor.sotnyk",
    "author_email": "ihor.sotnyk@onix-systems.com",
    "download_url": "https://files.pythonhosted.org/packages/7a/9f/f178c78f03ca64c8e2eea342a0913ee65d0f6ccd7aa8af543f29e15c2c9a/python_internal_privat-1.1.1.tar.gz",
    "platform": null,
    "description": "## python-internal-privat\r\nThis module is designed for quick interaction with the privatbank API.\r\n\r\n## Name\r\npython-internal-privat\r\n\r\n## Installation\r\nThis framework is published at the PyPI, install it with pip:\r\n\r\n  1.This package makes it possible to use module methods in synchronous frameworks:\r\n\r\n    pip install python-internal-privat[http]\r\n\r\n  2.This package makes it possible to use module methods in asynchronous frameworks:\r\n\r\n    pip install python-internal-privat[aio]\r\n\r\n  3.This package makes it possible to use ready-made views with a synchronous script based on the Django Rest framework:\r\n\r\n    pip install python-internal-privat[drf]\r\n\r\n  To get started, add the following packages to INSTALLED_APPS:\r\n\r\n    INSTALLED_APPS = [\r\n        ...\r\n        'rest_framework',\r\n        'drf_privat',\r\n    ]\r\n\r\n  Include drf_mono urls to your urls.py:\r\n\r\n      urlpatterns = [\r\n          ...\r\n          path('privat/', include('drf_privat.urls', namespace='drf_privat')),\r\n      ]\r\n\r\n  4.This package makes it possible to use ready-made routers with an asynchronous script based on the FastAPI framework:\r\n\r\n    pip install python-internal-privat[fastapi]\r\n\r\n  5.To install all packages at once:\r\n\r\n    pip install python-internal-privat[all]\r\n\r\n## Usage\r\n1. First, install the \"Autoclient\" module of the \"Privat24 for Business\" complex designed to serve corporate clients and private entrepreneurs.\"Autoclient\" is software that allows you to set up periodic automatic receipt of statements / account balances and import payments into Privat24.\r\n2. Then use this token to obtain personal data of a privatbank client.\r\n3. For a synchronous request use this token and your account's iban to initialize client:\r\n\r\n    from sync_privat.manager import SyncPrivatManager\r\n\r\n    token = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\r\n    iban = \"UAxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\r\n\r\n    mng = SyncPrivatManager(token, iban)\r\n\r\n3. For a asynchronous request use this token and your account's iban to initialize client:\r\n\r\n    from async_privat.manager import AsyncPrivatManager\r\n\r\n    token = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\r\n    iban = \"UAxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\r\n\r\n    mng = AsyncPrivatManager(token, iban)\r\n\r\n## Methods\r\nGet currencies (cashe rate)\r\nPrivatBank cash rate in branches\r\n```python\r\n>>> mng.get_currencies(cashe_rate=True)\r\n{\r\n  \"code\": 200,  \r\n  [\r\n    {\r\n      \"ccy\": \"EUR\",\r\n      \"base_ccy\": \"UAH\",\r\n      \"buy\": \"40.80000\",\r\n      \"sale\": \"41.80000\"\r\n    },\r\n    {\r\n      \"ccy\": \"USD\",\r\n      \"base_ccy\": \"UAH\",\r\n      \"buy\": \"37.30000\",\r\n      \"sale\": \"37.80000\"\r\n    }\r\n  ]\r\n}\r\n\r\n```\r\n\r\nGet currencies (non cashe rate)\r\nNon-cash rate of PrivatBank conversion by cards, Privat24, replenishment of deposits\r\n```python\r\n>>> mng.get_currency(cashe_rate=False)\r\n{\r\n  \"code\": 200,\r\n  [\r\n    {\r\n      \"ccy\": \"EUR\",\r\n      \"base_ccy\": \"UAH\",\r\n      \"buy\": \"40.44000\",\r\n      \"sale\": \"41.49378\"\r\n    },\r\n    {\r\n      \"ccy\": \"USD\",\r\n      \"base_ccy\": \"UAH\",\r\n      \"buy\": \"37.07500\",\r\n      \"sale\": \"37.73585\"\r\n    }\r\n  ]\r\n}\r\n\r\n```\r\n\r\nGet client info\r\n```python\r\n>>> mng.get_client_info()\r\n{\r\n  \"code\": 200,\r\n  {\r\n    \"status\": \"SUCCESS\",\r\n    \"type\": \"balances\",\r\n    \"exist_next_page\": false,\r\n    \"balances\": [\r\n      {\r\n        \"acc\": \"UAxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\r\n        \"currency\": \"UAH\",\r\n        \"balanceIn\": \"xx\",\r\n        \"balanceInEq\": \"xx\",\r\n        \"balanceOut\": \"xx\",\r\n        \"balanceOutEq\": \"xx\",\r\n        \"turnoverDebt\": \"xx\",\r\n        \"turnoverDebtEq\": \"xx\",\r\n        \"turnoverCred\": \"xx\",\r\n        \"turnoverCredEq\": \"xx\",\r\n        \"bgfIBrnm\": \" \",\r\n        \"brnm\": \"KPPN\",\r\n        \"dpd\": \"xx.xx.xxxx xx:xx:xx\",\r\n        \"nameACC\": \"xxxxxxxxxx\",\r\n        \"state\": \"a\",\r\n        \"atp\": \"T\",\r\n        \"flmn\": \"KP\",\r\n        \"date_open_acc_reg\": \"xx.xx.xxxx xx:xx:xx\",\r\n        \"date_open_acc_sys\": \"xx.xx.xxxx xx:xx:xx\",\r\n        \"date_close_acc\": \"xx.xx.xx xx:xx:xx\",\r\n        \"is_final_bal\": false\r\n      }\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\nGet balance\r\n```python\r\n>>> mng.get_balance()\r\n{\r\n  \"code\": 200,\r\n  {\r\n    \"balance\": \"x.xx\"\r\n  }\r\n}\r\n```\r\n\r\nGet statement\r\n```python\r\n>>> period = 31\r\n>>> limit = 100\r\n>>> mng.get_statement(period, limit)\r\n{\r\n  \"code\": 200,\r\n  {\r\n    \"status\": \"SUCCESS\",\r\n    \"type\": \"transactions\",\r\n    \"exist_next_page\": 'false',\r\n    \"next_page_id\": \"2988607044_online\",\r\n    \"transactions\": [\r\n      {\r\n        \"AUT_MY_CRF\": \"xxxxxxxxxx\",\r\n        \"AUT_MY_MFO\": \"xxxxxx\",\r\n        \"AUT_MY_ACC\": \"UAxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\r\n        \"AUT_MY_NAM\": \"xxxxxxxxxx\",\r\n        \"AUT_MY_MFO_NAME\": \"\u0410\u0422 \u041a\u0411 \\\"\u041f\u0420\u0418\u0412\u0410\u0422\u0411\u0410\u041d\u041a\\\"\",\r\n        \"AUT_MY_MFO_CITY\": \"\u0414\u043d\u0456\u043f\u0440\u043e\",\r\n        \"AUT_CNTR_CRF\": \"xxxxxxxxxx\",\r\n        \"AUT_CNTR_MFO\": \"305299\",\r\n        \"AUT_CNTR_ACC\": \"UAxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\r\n        \"AUT_CNTR_NAM\": \"xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx\",\r\n        \"AUT_CNTR_MFO_NAME\": \"\u0410\u0422 \u041a\u0411 \\\"\u041f\u0420\u0418\u0412\u0410\u0422\u0411\u0410\u041d\u041a\\\"\",\r\n        \"AUT_CNTR_MFO_CITY\": \"\u0414\u043d\u0456\u043f\u0440\u043e\",\r\n        \"CCY\": \"UAH\",\r\n        \"FL_REAL\": \"r\",\r\n        \"PR_PR\": \"r\",\r\n        \"DOC_TYP\": \"p\",\r\n        \"NUM_DOC\": \"autoclient\",\r\n        \"DAT_KL\": \"xx.xx.xxxx\",\r\n        \"DAT_OD\": \"xx.xx.xxxx\",\r\n        \"OSND\": \"xxxx **** **** xxxx test create pmnt to rest API\",\r\n        \"SUM\": \"x.xx\",\r\n        \"SUM_E\": \"x.xx\",\r\n        \"REF\": \"xxxxxxxxxxxxxx\",\r\n        \"REFN\": \"x\",\r\n        \"TIM_P\": \"xx:xx\",\r\n        \"DATE_TIME_DAT_OD_TIM_P\": \"xx.xx.xxxx xx:xx:xx\",\r\n        \"ID\": \"2934180427\",\r\n        \"TRANTYPE\": \"D\",\r\n        \"DLR\": \"xxx/xxxxxxxx\",\r\n        \"TECHNICAL_TRANSACTION_ID\": \"xxxxxxxxxx_online\",\r\n        \"UETR\": \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\r\n        \"ULTMT\": \"N\"\r\n      },\r\n      ...\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\nCreate payment\r\n```python\r\n>>> recipient = 5363************\r\n>>> amount = 0.01\r\n>>> mng.create_payment(recipient, amount)\r\n{\r\n  \"code\": 200,\r\n  {\r\n    \"code\": 201,\r\n    \"detail\": {\r\n      \"payment_data\": {\r\n        \"can_copy\": \"1\",\r\n        \"can_edit\": \"1\",\r\n        \"checked_on_pred\": \"true\",\r\n        \"document_number\": \"autoclient\",\r\n        \"document_type\": \"cr\",\r\n        \"fields_for_sign\": {\r\n          \"fields\": [\r\n            \"payment_ref\",\r\n            \"user_id\",\r\n            \"document_type\",\r\n            \"document_number\",\r\n            \"payer_account\",\r\n            \"payment_accept_date\",\r\n            \"recipient_account\",\r\n            \"recipient_card\",\r\n            \"recipient_nceo\",\r\n            \"payment_naming\",\r\n            \"payment_amount\",\r\n            \"payment_destination\",\r\n            \"payment_ccy\",\r\n            \"recipient_document_series\",\r\n            \"recipient_document_number\",\r\n            \"recipient_document_id_number\",\r\n            \"recipient_country_code\",\r\n            \"payer_ultmt_nceo\",\r\n            \"payer_ultmt_name\",\r\n            \"payer_ultmt_document_series\",\r\n            \"payer_ultmt_document_number\",\r\n            \"payer_ultmt_document_id_number\",\r\n            \"recipient_ultmt_nceo\",\r\n            \"recipient_ultmt_name\",\r\n            \"recipient_ultmt_document_series\",\r\n            \"recipient_ultmt_document_number\",\r\n            \"recipient_ultmt_document_id_number\",\r\n            \"struct_code\",\r\n            \"struct_category\",\r\n            \"struct_type\"\r\n          ],\r\n          \"version\": \"v3.4.0\"\r\n        },\r\n        \"id\": \"xxxxxxxxxxxxxxxxxxx\",\r\n        \"internal_type\": \"card\",\r\n        \"level_sign\": {\r\n          \"1_sign_level\": \"false\"\r\n        },\r\n        \"payer_account\": \"UAxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\r\n        \"payer_bank_name\": \"\u0410\u0422 \u041a\u0411 \\\"\u041f\u0420\u0418\u0412\u0410\u0422\u0411\u0410\u041d\u041a\\\"\",\r\n        \"payer_name\": \"\u0424\u041e\u041f xxxxxx xxxxx xxxxxxx\",\r\n        \"payer_nceo\": \"xxxxxxxxxx\",\r\n        \"payment_amount\": \"0.01\",\r\n        \"payment_ccy\": \"UAH\",\r\n        \"payment_date_unix\": \"xxxxxxxxxxxxxxxxxxx\",\r\n        \"payment_destination\": \"test create pmnt to rest API\",\r\n        \"payment_naming\": \"\u041f\u0410\u041e, \u041f\u0410\u041e \u041a\u0411 \u041f\u0420\u0418\u0412\u0410\u0422\u0411\u0410\u041d\u041a\",\r\n        \"payment_ref\": \"xxxxxxxxxxxxxxxxxxx\",\r\n        \"payment_sign\": [],\r\n        \"payment_status\": \"new\",\r\n        \"payment_status_short\": \"n\",\r\n        \"recipient_card\": \"xxxxxxxxxxxxxxxx\",\r\n        \"recipient_nceo\": \"xxxxxxxx\",\r\n        \"service_update_utime\": \"xxxxxxxxxx\",\r\n        \"source\": \"aup\",\r\n        \"tabs\": [\r\n          \"all\",\r\n          \"saved\"\r\n        ],\r\n        \"user_id\": \"xxxxxxxx\"\r\n      },\r\n      \"payment_pack_ref\": \"xxxxxxxxxxxx\",\r\n      \"payment_ref\": \"xxxxxxxxxxxxxxxxxxx\"\r\n    }\r\n  }\r\n}\r\n```\r\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "This module is designed for quick interaction with the privatbank API.",
    "version": "1.1.1",
    "project_urls": {
        "Homepage": "https://gitlab.onix.ua/onix-systems/python-internal-privat"
    },
    "split_keywords": [
        "files",
        "speedfiles"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7a9ff178c78f03ca64c8e2eea342a0913ee65d0f6ccd7aa8af543f29e15c2c9a",
                "md5": "71ab4b0e7eb921d4df8e5a8c3525dc36",
                "sha256": "d453afc09d4e14d06659abc38a0342a9622c062e3b0dfadb0f15900177d7e849"
            },
            "downloads": -1,
            "filename": "python_internal_privat-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "71ab4b0e7eb921d4df8e5a8c3525dc36",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 15102,
            "upload_time": "2024-01-26T12:56:07",
            "upload_time_iso_8601": "2024-01-26T12:56:07.273208Z",
            "url": "https://files.pythonhosted.org/packages/7a/9f/f178c78f03ca64c8e2eea342a0913ee65d0f6ccd7aa8af543f29e15c2c9a/python_internal_privat-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-26 12:56:07",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "python-internal-privat"
}
        
Elapsed time: 0.28121s