{
"info": {
"author": "",
"author_email": "",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved",
"License :: OSI Approved :: Apache Software License",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: Implementation :: CPython",
"Topic :: System :: Monitoring"
],
"description": "> Read the latest version of this README, with working internal links, at [GitHub](https://github.com/Dynatrace/OneAgent-SDK-for-Python#readme).\n\n# Dynatrace OneAgent SDK for Python\n\nThis SDK enables Dynatrace customers to extend request level visibility into Python applications. It provides the Python implementation of the [Dynatrace OneAgent SDK](https://github.com/Dynatrace/OneAgent-SDK).\n\n\n\n\n\n- [Requirements](#requirements)\n- [Using the OneAgent SDK for Python in your application](#using-the-oneagent-sdk-for-python-in-your-application)\n- [API Concepts](#api-concepts)\n * [Initialization and SDK objects](#initialization-and-sdk-objects)\n * [Tracers](#tracers)\n- [Features and how to use them](#features-and-how-to-use-them)\n * [Remote calls](#remote-calls)\n * [SQL database requests](#sql-database-requests)\n * [Incoming web requests](#incoming-web-requests)\n * [Outgoing web requests](#outgoing-web-requests)\n * [Trace in-process asynchronous execution](#trace-in-process-asynchronous-execution)\n * [Custom request attributes](#custom-request-attributes)\n * [Custom services](#custom-services)\n * [Messaging](#messaging)\n * [Outgoing Messages](#outgoing-messaging)\n * [Incoming Messages](#incoming-messaging)\n- [Troubleshooting](#troubleshooting)\n * [Installation issues](#installation-issues)\n * [Post-installation issues](#post-installation-issues)\n- [Repository contents](#repository-contents)\n- [Help & Support](#help--support)\n * [Read the manual](#read-the-manual)\n * [Let us help you](#let-us-help-you)\n- [Release notes](#release-notes)\n- [License](#license)\n\n\n\n\n## Requirements\n\nThe SDK supports Python 2 \u2265 2.7 and Python 3 \u2265 3.4. Only the official CPython (that is, the \"normal\" Python, i.e. the Python implementation\nfrom ) is supported and only on Linux (musl libc is currently not supported) and Windows with the x86 (including\nx86-64) architecture. Additionally, `pip` \u2265 8.1.0 (2016-03-05) is required for installation.\n\nThe Dynatrace OneAgent SDK for Python is a wrapper of the [Dynatrace OneAgent SDK for C/C++](https://github.com/Dynatrace/OneAgent-SDK-for-C)\nand therefore the SDK for C/C++ is required and delivered with the Python SDK. See\n[here](https://github.com/Dynatrace/OneAgent-SDK-for-C#dynatrace-oneagent-sdk-for-cc-requirements)\nfor its requirements, which also apply to the SDK for Python.\n\nThe version of the SDK for C/C++ that is included in each version of the SDK for Python is shown in the following table along with the required\nDynatrace OneAgent version (it is the same as\n[listed in the OneAgent SDK for C/C++'s documentation](https://github.com/Dynatrace/OneAgent-SDK-for-C/blob/master/README.md#compatibility-of-dynatrace-oneagent-sdk-for-cc-releases-with-oneagent-releases)).\n\n\n\n|OneAgent SDK for Python|OneAgent SDK for C/C++|Dynatrace OneAgent|Support status |\n|:----------------------|:---------------------|:-----------------|:------------------|\n|1.2 |1.4.1 |\u22651.161 |Supported |\n|1.1 |1.3.1 |\u22651.151 |Supported |\n|1.0 |1.1.0 |\u22651.141 |EAP (not supported)|\n\n\n## Using the OneAgent SDK for Python in your application\n\n\n\nTo install the latest version of the OneAgent SDK for Python, use the PyPI package\n`oneagent-sdk`:\n\n```bash\npython -m pip install --upgrade oneagent-sdk\n```\n\nTo verify your installation, execute\n\n```bash\npython -c \"import oneagent; print(oneagent.initialize())\"\n```\n\nIf the installation was successful, you should get an output ending with `InitResult(status=0, error=None)`. Otherwise, see the [Troubleshooting](#troubleshooting) section.\n\nTo load the OneAgent SDK into your application, just add the following line at the top of your script:\n\n```python\nimport oneagent\n```\n\nHere is a quick \"Hello World\" that will produce a service call in Dynatrace:\n\n```python\nimport oneagent\n\nif not oneagent.initialize():\n print('Error initializing OneAgent SDK.')\n\nwith oneagent.get_sdk().trace_incoming_remote_call('method', 'service', 'endpoint'):\n pass\n\nprint('It may take a few moments before the path appears in the UI.')\ninput('Please wait...')\noneagent.shutdown()\n```\n\nA more detailed [sample application is available here](https://github.com/Dynatrace/OneAgent-SDK-for-Python/blob/master/samples/basic-sdk-sample/basic_sdk_sample.py).\nSee also the Quickstart section in the [API documentation](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/quickstart.html).\n\n\n\n## API Concepts\n\nCommon concepts of the Dynatrace OneAgent SDK are explained in the [Dynatrace OneAgent SDK repository](https://github.com/Dynatrace/OneAgent-SDK#apiconcepts).\n\n\n### Initialization and SDK objects\n\nBefore first using any other SDK functions, you need to initialize the SDK.\n\n```python\ninit_result = oneagent.initialize()\nprint('OneAgent SDK initialization result' + repr(init_result))\nif init_result:\n print('SDK should work (but agent might be inactive).')\nelse:\n print('SDK will definitely not work (i.e. functions will be no-ops):', init_result)\n```\n\nSee the API documentation for the [`initialize` function](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.initialize)\nand the [`InitResult` class](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.InitResult) for more information.\n\nTo use the SDK, get a reference to the [`SDK`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK)\nsingleton by calling the oneagent static [`get_sdk`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.get_sdk)\nmethod. The first thing you may want to do with this object, is checking if the agent is active by comparing the value of the\n[`agent_state`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK.agent_state)\nproperty to the [`oneagent.common.AgentState`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.common.AgentState)\nconstants. You can also have a look at the [extended SDK state information](#extended-sdk-state).\n\n```python\nimport oneagent\nfrom oneagent.common import AgentState\n# Initialize oneagent, as above\n\nsdk = oneagent.get_sdk()\nif sdk.agent_state not in (AgentState.ACTIVE, AgentState.TEMPORARILY_INACTIVE):\n print('Too bad, you will not see data from this process.')\n```\n\nAs a development and debugging aid it is recommended to set a diagnostic callback. The callback will be used by the SDK to inform about unusual events.\n\nUnusual events that prevent an operation from completing successfully include:\n* API usage errors\n* other unexpected events (like out of memory situations)\n\n> **NOTE**: Use this as a development and debugging aid only. Your application should not rely on a calling sequence or any message content being set\nor passed to the callback.\n\n```python\ndef _diag_callback(unicode_message):\n\tprint(unicode_message)\n\nsdk.set_diagnostic_callback(_diag_callback)\n```\n\n\n\n### Tracers\n\nTo trace any kind of call you first need to create a\n[Tracer](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.tracers.Tracer),\nusing one of the various `trace_*` methods of the\n[`SDK`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK)\nobject. The Tracer object controls the \u201clife cycle\u201d of a trace: Entering a\n`with`-block with a tracer starts the trace, exiting it ends it. Exiting the\n`with` block with an exception causes the trace to be marked as failed with the\nexception message (if you do not want or need this behavior, tracers have\nexplicit methods for starting, ending and attaching error information too; see the\n[documentation](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.tracers.Tracer)).\n\nThere are different tracer types requiring different information for creation.\nAs an example, to trace an incoming remote call, this would be the most simple\nway to trace it:\n\n```python\nimport oneagent\n\nwith oneagent.get_sdk().trace_incoming_remote_call('method', 'service', 'endpoint'):\n pass # Here you would do the actual work that is timed\n```\n\nSee the section on [remote calls](#remote-calls) for more information.\n\nSome tracers also support attaching additional information before ending it.\n\n**Important:** In Python 2, tracers accept both byte (\u201cnormal\u201d) and unicode\nstrings. Byte strings must always use the UTF-8 encoding!\n\n\n\n## Features and how to use them\n\nThe feature sets differ slightly with each language implementation. More functionality will be added over time, see\n[Planned features for OneAgent SDK](https://answers.dynatrace.com/spaces/483/dynatrace-product-ideas/idea/198106/planned-features-for-oneagent-sdk.html)\nfor details on upcoming features.\n\nA more detailed specification of the features can be found in [Dynatrace OneAgent SDK](https://github.com/Dynatrace/OneAgent-SDK#features).\n\n|Feature |Required OneAgent SDK for Python version|\n|:-----------------------------------------|:--------|\n|Custom services |\u22651.2.0 |\n|Messaging |\u22651.2.0 |\n|In-process linking |\u22651.1.0 |\n|Custom request attributes |\u22651.1.0 |\n|Outgoing web requests |\u22651.1.0 |\n|Incoming web requests |\u22651.0.0 |\n|SQL database requests |\u22651.0.0 |\n|Trace incoming and outgoing remote calls |\u22651.0.0 |\n\n\n### Remote calls\n\nYou can use the SDK to trace communication from one process to another. This will enable you to see full Service Flow, PurePath and Smartscape topology\nfor remoting technologies that Dynatrace is not aware of.\n\nTo trace any kind of remote call you first need to create a Tracer. The Tracer object represents the endpoint that you want to call, thus you need to\nsupply the name of the remote service and method. In addition, you need to transport a tag in your remote call from the client side to the server side\nif you want to trace it end to end.\n\nOn the client side, you would trace the outgoing remote call like this:\n\n```python\noutcall = sdk.trace_outgoing_remote_call(\n 'remoteMethodToCall', 'RemoteServiceName', 'rmi://Endpoint/service',\n oneagent.sdk.Channel(oneagent.sdk.ChannelType.TCP_IP, 'remoteHost:1234'),\n protocol_name='RMI/custom')\nwith outcall:\n # Note: You can access outgoing_dynatrace_*_tag only after the trace\n # has started!\n strtag = outcall.outgoing_dynatrace_string_tag\n do_actual_remote_call(extra_headers={'X-dynaTrace': strtag})\n```\n\nOn the server side, you would trace it like this:\n\n```python\nincall = sdk.trace_incoming_remote_call(\n 'remoteMethodToCall', 'RemoteServiceName', 'rmi://Endpoint/service',\n protocol_name='RMI/custom',\n str_tag=my_remote_message.get_header_optional('X-dynaTrace'))\nwith incall:\n pass # Here you would do the actual work that is timed\n```\n\nSee the documentation for more information:\n\n* [`trace_incoming_remote_call`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK.trace_incoming_remote_call)\n* [`trace_outgoing_remote_call`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.tracers.trace_outgoing_remote_call)\n* [General information on tagging](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/tagging.html)\n\n\n### SQL database requests\n\nTo trace database requests you need a database info object which stores the information about your database which does not change between individual\nrequests. This will typically be created somewhere in your initialization code (after initializing the SDK):\n\n```python\ndbinfo = sdk.create_database_info(\n 'Northwind', oneagent.sdk.DatabaseVendor.SQLSERVER,\n oneagent.sdk.Channel(oneagent.sdk.ChannelType.TCP_IP, '10.0.0.42:6666'))\n```\n\nThen you can trace the SQL database requests:\n\n```python\nwith sdk.trace_sql_database_request(dbinfo, 'SELECT foo FROM bar;') as tracer:\n # Do actual DB request\n tracer.set_rows_returned(42) # Optional\n tracer.set_round_trip_count(3) # Optional\n```\n\nNote that you need to release the database info object. You can do this by calling `close()` on it or using it in a `with` block.\n\nSee the documentation for more information:\n\n* [`create_database_info`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK.create_database_info)\n* [`trace_sql_database_request`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK.trace_sql_database_request)\n* [`DatabaseRequestTracer`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.tracers.DatabaseRequestTracer)\n\n\n### Incoming web requests\n\n[Same as with database infos](#sql-database-requests), to trace incoming web requests you need a web application info object which stores the\ninformation about your web application which does not change:\n\n```python\nwappinfo = sdk.create_web_application_info(\n virtual_host='example.com',\n application_id='MyWebApplication',\n context_root='/my-web-app/')\n```\n\nThen you can trace incoming web requests:\n\n```python\nwreq = sdk.trace_incoming_web_request(\n wappinfo,\n 'http://example.com/my-web-app/foo?bar=baz',\n 'GET',\n headers={'Host': 'example.com', 'X-foo': 'bar'},\n remote_address='127.0.0.1:12345')\n\nwith wreq:\n wreq.add_parameter('my_form_field', '1234')\n # Process web request\n wreq.add_response_headers({'Content-Length': '1234'})\n wreq.set_status_code(200) # OK\n```\n\nNote that you need to release the web application info object. You can do this by calling `close()` on it or using it in a `with` block.\n\nIncoming web request tracers support some more features not shown here. Be sure to check out the documentation:\n\n* [`create_web_application_info`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK.create_web_application_info)\n* [`trace_incoming_web_request`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK.trace_incoming_web_request)\n* [`IncomingWebRequestTracer`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.tracers.IncomingWebRequestTracer)\n\n\n\n### Outgoing web requests\n\nTo trace an outgoing web request you need to create an 'Outgoing Web Request Tracer' object. You pass the destination URL, the HTTP method and\nrequest headers as parameters.\n\nLet's have a look at a web request example:\n```python\nfrom urllib.request import Request\n\n# Create your web request.\nurl = 'http://example.com'\n\nreq = Request(url)\nreq.add_header('header1', '1234')\nreq.add_header('header2', '5678')\n```\n\nAfter creating/setting up the request you have to create the tracer object and pass the parameters.\n\n```python\n# Create the tracer.\ntracer = sdk.trace_outgoing_web_request(url, req.get_method(), req.headers)\n```\n\nThe next step is to start the tracer and then to retrieve the outgoing Dynatrace tag. The tag is being used to trace a transaction from end-to-end.\nYou have to send the tag to the destination via an additional request header which is called\n[`DYNATRACE_HTTP_HEADER_NAME`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.common.DYNATRACE_HTTP_HEADER_NAME).\n[Here you can find more information on tagging](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/tagging.html).\n\n```python\nwith tracer:\n\t# Get and set the Dynatrace tag.\n\ttag = tracer.outgoing_dynatrace_string_tag\n \treq.add_header(DYNATRACE_HTTP_HEADER_NAME, tag)\n\n\t# Here you process and send the web request.\n\tresponse = _process_your_outgoing_request(req)\n```\n\nFinally, get the response headers you want to trace and the status code of the response and add them to the tracer.\n\n```python\n tracer.add_response_headers({'Content-Length': response.get_content_length()})\n tracer.set_status_code(response.get_status_code())\n```\n\nBe sure to check out the documentation:\n* [`trace_outgoing_web_request`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK.trace_outgoing_web_request)\n* [`OutgoingWebRequestTracer`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.tracers.OutgoingWebRequestTracer)\n* [General information on tagging](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/tagging.html)\n\n\n\n### Trace in-process asynchronous execution\n\nYou can use the SDK to trace asynchronous in-process code execution. This might be useful if the OneAgent does not support the threading framework\nor specific asynchronous libraries. In-process linking should be used to link other services (Database, Webrequests, ...) between thread or\nqueueing boundaries currently not supported out-of-the-box by the OneAgent.\n\nTo link asynchronous execution, you need to create an in-process link, where the execution forks:\n\n```python\nin_process_link = sdk.create_in_process_link()\n```\n\nThe provided in-process link must not be serialized and can only be used inside the process in which it was created. It must be used to start\ntracing where the asynchronous execution takes place:\n\n```python\nwith sdk.trace_in_process_link(in_process_link):\n \t# Do the asynchronous job\n \t:\n```\n\n\n### Custom Request Attributes\n\nYou can use the SDK to add custom request attributes to the currently traced service. Custom request attributes allow you to do easier/better\nfiltering of your requests in Dynatrace.\n\nAdding custom request attributes to the currently traced service call is pretty simple. Just call the `add_custom_request_attribute` method\nwith your key and value (only int, float and string values are currently supported):\n\n```python\nsdk.add_custom_request_attribute('errorCount', 42)\nsdk.add_custom_request_attribute('gross weight', 2.39)\nsdk.add_custom_request_attribute('famous actor', 'Benedict Cumberbatch')\n```\n\nCheck out the documentation at:\n* [`add_custom_request_attribute`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK.add_custom_request_attribute)\n\n\n\n### Custom services\nYou can use the SDK to trace custom service methods. A custom service method is a meaningful part\nof your code that you want to trace but that does not fit any other tracer. An example could be\nthe callback of a periodic timer.\n\n```python\nwith sdk.trace_custom_service('onTimer', 'CleanupTask'):\n\t# Do the cleanup task\n\t:\n```\n\nCheck out the documentation at:\n* [`trace_custom_service`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK.trace_custom_service)\n\n\n\n### Messaging\n\nYou can use the SDK to trace messages sent or received via a messaging system. When tracing messages,\nwe distinguish between:\n\n* sending a message\n* waiting for and receiving a message\n* processing a received message\n\n\n#### Outgoing Messages\n\nAll messaging related tracers need a messaging system info object which you have to create prior\nto the respective messaging tracer, which is an outgoing message tracer in the example below.\n\n```python\nmsi_handle = sdk.create_messaging_system_info(\n\t'myMessagingSystem', 'requestQueue', MessagingDestinationType.QUEUE,\n\toneagent.sdk.Channel(oneagent.sdk.ChannelType.TCP_IP, '10.11.12.13'))\n\nwith msi_handle:\n\twith sdk.trace_outgoing_message(msi_handle) as tracer:\n\t\t# Get and set the Dynatrace tag.\n\t\ttag = tracer.outgoing_dynatrace_string_tag\n\t\tmessage_to_send.add_header_field(oneagent.sdk.DYNATRACE_MESSAGE_PROPERTY_NAME, tag)\n\n\t\t# Send the message.\n\t\tthe_queue.send(message_to_send)\n\n\t\t# Optionally set message and/or correlation IDs\n\t\ttracer.set_vendor_message_id(message_to_send.get_message_id())\n\t\ttracer.set_correlation_id(message_to_send.get_correlation_id())\n```\n\n\n#### Incoming Messages\n\nOn the incoming side, we need to differentiate between the blocking receiving part and processing\nthe received message. Therefore two different tracers are being used:\n\n* IncomingMessageReceiveTracer\n* IncomingMessageProcessTracer\n\n```python\nmsi_handle = sdk.create_messaging_system_info(\n\t'myMessagingSystem', 'requestQueue', MessagingDestinationType.QUEUE,\n\toneagent.sdk.Channel(oneagent.sdk.ChannelType.TCP_IP, '10.11.12.13'))\n\nwith msi_handle:\n\t# Create the receive tracer for incoming messages.\n\twith sdk.trace_incoming_message_receive(msi_handle):\n\t\t# This is a blocking call, which will return as soon as a message is available.\n\t\tMessage query_message = the_queue.receive()\n\n\t\t# Get the Dynatrace tag from the message.\n\t\ttag = query_message.get_header_field(oneagent.sdk.DYNATRACE_MESSAGE_PROPERTY_NAME)\n\n\t\t# Create the tracer for processing incoming messages.\n\t\ttracer = sdk.trace_incoming_message_process(msi_handle, str_tag=tag)\n\t\ttracer.set_vendor_message_id(query_message.get_vendor_id())\n\t\ttracer.set_correlation_id(query_message.get_correlation_id())\n\n\t\twith tracer:\n\t\t\t# Now let's handle the message ...\n\t\t\tprint('handle incoming message')\n```\n\nIn case of non-blocking receive (e. g. using an event handler), there is no need to use an\nIncomingMessageReceiveTracer - just trace processing of the message by using the IncomingMessageProcessTracer:\n\n```python\nmsi_handle = sdk.create_messaging_system_info(\n\t'myMessagingSystem', 'requestQueue', MessagingDestinationType.QUEUE,\n\toneagent.sdk.Channel(oneagent.sdk.ChannelType.TCP_IP, '10.11.12.13'))\n\ndef on_message_received(message):\n\t# Get the Dynatrace tag from the message.\n\ttag = message.get_header_field(oneagent.sdk.DYNATRACE_MESSAGE_PROPERTY_NAME)\n\n\t# Create the tracer for processing incoming messages.\n\ttracer = sdk.trace_incoming_message_process(msi_handle, str_tag=tag)\n\ttracer.set_vendor_message_id(message.get_vendor_id())\n\ttracer.set_correlation_id(message.get_correlation_id())\n\n\twith tracer:\n\t\t# Now let's handle the message ...\n\t\tprint('handle incoming message')\n```\n\nSee the documentation for more information:\n\n* [`create_messaging_system_info`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.SDK.create_messaging_system_info)\n* [`trace_outgoing_message`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.tracers.trace_outgoing_message)\n* [`trace_incoming_message_receive`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.tracers.trace_incoming_message_receive)\n* [`trace_incoming_message_process`](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/sdkref.html#oneagent.sdk.tracers.trace_incoming_message_process)\n* [General information on tagging](https://dynatrace.github.io/OneAgent-SDK-for-Python/docs/tagging.html)\n\n\n\n## Troubleshooting\n\n\n### Installation issues\n\n* `ValueError` when installing, complaining about missing `DT_PYSDK_CSDK_PATH`.\n\n Make sure you are using pip to install a prebuilt package wheel for your system from PyPI, as described in [Using the OneAgent SDK for\n Python in your application](#installation). Also make sure you are using an up-to date version of `pip`, `setuptools` and `wheel`. You can\n try upgrading them with `python -m pip install --upgrade pip setuptools wheel` (make sure to use the same `python` that you use to install\n the `oneagent-sdk` package). ATTENTION: If you use the system-provided pip (e.g. installed via `apt-get` on Ubuntu) you should instead use\n a `pip` inside a `virtualenv` (the same as your project), as uprading system-provided packages via `pip` may cause issues.\n\n If this does not resolve the issue, make sure you are using a supported platform, as listed in [Requirements](#requirements). If you *are*\n using a supported system, you can try downloading the [OneAgent SDK for C/C++](https://github.com/Dynatrace/OneAgent-SDK-for-C) in the\n version corresponding to your OneAgent SDK for Python as listed in [the table in Requirements](#requirements). Then set the\n `DT_PYSDK_CSDK_PATH` environment variable to the `.so`/`.dll` file corresponding to your platform in the `lib` subdirectory of the C SDK\n and retry the installation (e.g. in a bash shell, use `export DT_PYSDK_CSDK_PATH=path/to/onesdk_shared.so`). If there is no corresponding\n directory, your platfom is not supported. Otherwise, regardless if it works with that method or not, please report an issue as desribed in\n [Let us help you](#let-us-help-you).\n\n\n\n### Post-installation issues\n\nTo debug your OneAgent SDK for Python installation, execute the following Python code:\n\n```python\nimport oneagent\noneagent.logger.setLevel(1)\ninit_result = oneagent.initialize(['loglevelsdk=finest', 'loglevel=finest'])\nprint('InitResult=' + repr(init_result))\n```\n\nIf you get output containing `InitResult=InitResult(status=0, error=None)`, your installation should be fine. Otherwise, the output is helpful in\ndetermining the issue. The [extended SKD state](#extended-sdk-state) might also help to diagnose your problem.\n\nKnown gotchas:\n\n* `ImportError` or `ModuleNotFoundError` in line 1 that says that there is no module named `oneagent`.\n\n Make sure that the `pip install` or equivalent succeeded (see [here](#installation)). Also make sure you use the `pip` corresponding to your\n `python` (if in doubt, use `python -m pip` instead of `pip` for installing).\n\n\n\n### Extended SDK State\n\nFor debugging and/or diagnosing purposes you can also use the extended SDK state information.\n```python\n# The agent state is one of the integers in oneagent.sdk.AgentState.\nprint('Agent state:', oneagent.get_sdk().agent_state)\n\n# The instance attribute 'agent_found' indicates whether an agent could be found or not.\nprint('Agent found:', oneagent.get_sdk().agent_found)\n\n# If an agent was found but it is incompatible with this version of the SDK for Python\n# then 'agent_is_compatible' would be set to false.\nprint('Agent is compatible:', oneagent.get_sdk().agent_is_compatible)\n\n# The agent version is a string holding both the OneAgent version and the\n# OneAgent SDK for C/C++ version separated by a '/'.\nprint('Agent version:', oneagent.get_sdk().agent_version_string)\n```\n\n\n\n## Repository contents\n\nIf you are viewing the [GitHub repository](https://github.com/Dynatrace/OneAgent-SDK-for-Python), you will see:\n\n- `LICENSE`: License under which the whole SDK and sample applications are\n published.\n- `src/`: Actual source code of the Python OneAgent SDK.\n- `docs/`: Source files for the ([Sphinx](https://sphinx-doc.org)-based) HTML\n documentation. For the actual, readable documentation, see\n [here](#documentation).\n- `tests/`, `test-util-src/`: Contains tests and test support files that are\n useful (only) for developers wanting to contribute to the SDK itself.\n- `setup.py`, `setup.cfg`, `MANIFEST.in`, `project.toml`: Development files\n required for creating e.g. the PyPI package for the Python OneAgent SDK.\n- `tox.ini`, `pylintrc`: Supporting files for developing the SDK itself. See\n and .\n\n\n## Help & Support\n\n**Support policy**\n\nThe Dynatrace OneAgent SDK for Python has GA status. The features are fully supported by Dynatrace.\n\nFor detailed support policy see [Dynatrace OneAgent SDK help](https://github.com/Dynatrace/OneAgent-SDK#help).\n\n\n\n### Read the manual\n\n* The most recent version of the documentation for the Python SDK can be viewed at\n.\n* A high level documentation/description of OneAgent SDK concepts is available at\n.\n* Of course, [this README](#) also contains lots of useful information.\n\n\n### Let us help you\n\nMake sure your issue is not already solved in the [available documentation](#documentation) before you ask for help. Especially the\n[troubleshooting section in this README](#troubleshooting) may prove helpful.\n\n**Get Help**\n* Ask a question in the [product forums](https://answers.dynatrace.com/spaces/482/view.html).\n* Read the product documentation\n\n**Open a [GitHub issue](https://github.com/Dynatrace/OneAgent-SDK-for-Python/issues) to:**\n * Report minor defects or typos.\n * Ask for improvements or changes in the SDK API.\n * Ask any questions related to the community effort.\n\nSLAs don't apply for GitHub tickets.\n\n**Customers can open a ticket on the Dynatrace support portal to:**\n* Get support from the Dynatrace technical support engineering team\n* Manage and resolve product related technical issues\n\nSLAs apply according to the customer's support level.\n\n\n\n## Release notes\n\nPlease see the [GitHub releases page](https://github.com/Dynatrace/OneAgent-SDK-for-Python/releases),\nand the [PyPI release history](https://pypi.org/project/oneagent-sdk/#history).\n\n\n\n## License\n\nSee the LICENSE file for details. It should be included in your distribution.\nOtherwise, see the most recent version on\n[GitHub](https://github.com/Dynatrace/OneAgent-SDK-for-Python/blob/master/LICENSE).\n\nSummary: This software is licensed under the terms of the Apache License Version\n2.0 and comes bundled with the [six library by Benjamin\nPeterson](http://six.readthedocs.io/), which is licensed under the terms of the\nMIT license.\n\n\n\n\n",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": "https://pypi.org/project/oneagent-sdk/",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/Dynatrace/OneAgent-SDK-for-Python",
"keywords": "",
"license": "Apache License 2.0",
"maintainer": "Dynatrace LLC",
"maintainer_email": "dynatrace.oneagent.sdk@dynatrace.com",
"name": "oneagent-sdk",
"package_url": "https://pypi.org/project/oneagent-sdk/",
"platform": "",
"project_url": "https://pypi.org/project/oneagent-sdk/",
"project_urls": {
"Documentation": "https://dynatrace.github.io/OneAgent-SDK-for-Python/",
"Download": "https://pypi.org/project/oneagent-sdk/",
"Homepage": "https://github.com/Dynatrace/OneAgent-SDK-for-Python",
"Issue Tracker": "https://github.com/Dynatrace/OneAgent-SDK-for-Python/issues"
},
"release_url": "https://pypi.org/project/oneagent-sdk/1.2.1/",
"requires_dist": null,
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"summary": "Dynatrace OneAgent SDK for Python",
"version": "1.2.1"
},
"last_serial": 5505502,
"releases": {
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "8ec181ca5cdc24c9c6aaf18ac82feab3",
"sha256": "888b6a7789535a799e980cdc035a20ce6afe15f0cc108b79802cda704dbc571c"
},
"downloads": -1,
"filename": "oneagent_sdk-1.0.0-py2.py3-none-manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "8ec181ca5cdc24c9c6aaf18ac82feab3",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3",
"size": 57921,
"upload_time": "2018-05-22T15:18:31",
"url": "https://files.pythonhosted.org/packages/4d/fb/97bdf97913c537cf7c88c080b61ca65c752dfef89d053edb88aae212ab2c/oneagent_sdk-1.0.0-py2.py3-none-manylinux1_i686.whl"
},
{
"comment_text": "",
"digests": {
"md5": "48788d77445de81be283795a20e730a9",
"sha256": "fcb83efbfddfea618ddec5d853094748b54413c75ca056957aa17570c8f1d392"
},
"downloads": -1,
"filename": "oneagent_sdk-1.0.0-py2.py3-none-manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "48788d77445de81be283795a20e730a9",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3",
"size": 58216,
"upload_time": "2018-05-22T15:18:32",
"url": "https://files.pythonhosted.org/packages/58/3f/d07b3788150748ccf6572f8fe1fbd0cbc25904982e14203a8cdf515750b3/oneagent_sdk-1.0.0-py2.py3-none-manylinux1_x86_64.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c2649ff1f3c33e90c82c987f2b3476e6",
"sha256": "6744538beb505466caf8d7927ec57b5d396728da8a7193fc1a2051dde1bc968c"
},
"downloads": -1,
"filename": "oneagent_sdk-1.0.0-py2.py3-none-win32.whl",
"has_sig": false,
"md5_digest": "c2649ff1f3c33e90c82c987f2b3476e6",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3",
"size": 183871,
"upload_time": "2018-05-22T15:18:33",
"url": "https://files.pythonhosted.org/packages/6e/8f/300b9ee42df3ef84184adb19b0a00b6eafe87a7b995df7a5fe0bbfd0c78a/oneagent_sdk-1.0.0-py2.py3-none-win32.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7d719d8e237addd2a1a06508ca61391a",
"sha256": "a36ca461954f42b0721eafe771cc380f5d59269f898c0c016e734c3f22730297"
},
"downloads": -1,
"filename": "oneagent_sdk-1.0.0-py2.py3-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "7d719d8e237addd2a1a06508ca61391a",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3",
"size": 209089,
"upload_time": "2018-05-22T15:18:34",
"url": "https://files.pythonhosted.org/packages/88/b5/87ae9173fd3658371188af46688073d182c281fbef450b669d31c7321f27/oneagent_sdk-1.0.0-py2.py3-none-win_amd64.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3855228304c0a950863341a8fc79b062",
"sha256": "ccc3afe2beb73c140a904800cb818de8d8b23613e95d4e2a40963ff072a39a2c"
},
"downloads": -1,
"filename": "oneagent-sdk-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "3855228304c0a950863341a8fc79b062",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3",
"size": 48731,
"upload_time": "2018-05-22T15:18:36",
"url": "https://files.pythonhosted.org/packages/b1/4a/ae456adff3b3aaef818daf7b6ba371b5a0d4beba9e79da94bd04f9592958/oneagent-sdk-1.0.0.tar.gz"
}
],
"1.1.0": [
{
"comment_text": "",
"digests": {
"md5": "cb1fac282cdaf45e225f72e89331069a",
"sha256": "e5b4c6330459dff6924ba9594a3f0cbe6cab88275614851b9fb60069c0cf5dc2"
},
"downloads": -1,
"filename": "oneagent_sdk-1.1.0-py2.py3-none-manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "cb1fac282cdaf45e225f72e89331069a",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 96034,
"upload_time": "2018-12-13T12:14:43",
"url": "https://files.pythonhosted.org/packages/f6/50/e24410d18cca83f5cf3435fe6b1570e86664b8d7a7d9df6af52545c59c54/oneagent_sdk-1.1.0-py2.py3-none-manylinux1_i686.whl"
},
{
"comment_text": "",
"digests": {
"md5": "58629e9c1524bc99541215452cd19a03",
"sha256": "639453d46cbdded76ba2c22b3a66d28bfde0a05204e2a0d9a4abe17fcc2cbccb"
},
"downloads": -1,
"filename": "oneagent_sdk-1.1.0-py2.py3-none-manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "58629e9c1524bc99541215452cd19a03",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 98543,
"upload_time": "2018-12-13T12:14:45",
"url": "https://files.pythonhosted.org/packages/fc/e9/bb2a343482f7e364c0dd1b0c15a95031f77561d5f43ab247dd1e134c59ad/oneagent_sdk-1.1.0-py2.py3-none-manylinux1_x86_64.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7d27fb7f8852c5223aed4ca59dea5b8b",
"sha256": "05e723506288c2203b9cdbd6f23347176ad8801a6c5d6ab6a21647798d302734"
},
"downloads": -1,
"filename": "oneagent_sdk-1.1.0-py2.py3-none-win32.whl",
"has_sig": false,
"md5_digest": "7d27fb7f8852c5223aed4ca59dea5b8b",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 197481,
"upload_time": "2018-12-13T12:14:46",
"url": "https://files.pythonhosted.org/packages/1f/25/ffcab9788354963defb9727a49509810aa0ecd22247390cfda274b4c60fe/oneagent_sdk-1.1.0-py2.py3-none-win32.whl"
},
{
"comment_text": "",
"digests": {
"md5": "54e6354a6622a2d46cecda69805b1261",
"sha256": "86e000ce1c8830e6557176c27ea98fe492e9a6364beecdd4aad4e5a38d6dee56"
},
"downloads": -1,
"filename": "oneagent_sdk-1.1.0-py2.py3-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "54e6354a6622a2d46cecda69805b1261",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 227408,
"upload_time": "2018-12-13T12:14:47",
"url": "https://files.pythonhosted.org/packages/cb/5b/75e9bc886bae794bcdb5e32bbc5c0caa8ab23f365c5e7352d9cd45d33ea1/oneagent_sdk-1.1.0-py2.py3-none-win_amd64.whl"
},
{
"comment_text": "",
"digests": {
"md5": "ad7d9fb85499d0b8e4491f447650228a",
"sha256": "c4b2733914eb9085ac6b918f9cc43c0fbbf30dd7fb8dcef687933c5fd965035d"
},
"downloads": -1,
"filename": "oneagent-sdk-1.1.0.zip",
"has_sig": false,
"md5_digest": "ad7d9fb85499d0b8e4491f447650228a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 71568,
"upload_time": "2018-12-13T12:14:49",
"url": "https://files.pythonhosted.org/packages/7e/5e/6548b1297103933263354a94ee95e565be200cc674ad28ef8c4a22d55779/oneagent-sdk-1.1.0.zip"
}
],
"1.2.0": [
{
"comment_text": "",
"digests": {
"md5": "fe4642a9c106a4732f9b11d03abec653",
"sha256": "e1ab23214121d983ebdab22e28175113d7311647518431ee6da3d68975c2d468"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.0-py2.py3-none-manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "fe4642a9c106a4732f9b11d03abec653",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 106111,
"upload_time": "2019-05-16T08:21:42",
"url": "https://files.pythonhosted.org/packages/23/1c/1b21d01b7ac8ac4c472a3de540bc569f8fd55f7b26d752eeb3e9061665bb/oneagent_sdk-1.2.0-py2.py3-none-manylinux1_i686.whl"
},
{
"comment_text": "",
"digests": {
"md5": "783a99476775339a2d60436fd4792a95",
"sha256": "57b5282babd82e7305cb2685854eea62bcc2339e5c89d65afc9940f6eb46331a"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.0-py2.py3-none-manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "783a99476775339a2d60436fd4792a95",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 108717,
"upload_time": "2019-05-16T08:21:44",
"url": "https://files.pythonhosted.org/packages/9b/4a/0f887a14cfe00c26e6e3560808249baf0b5ab9729d1f2ce46d334dc77dce/oneagent_sdk-1.2.0-py2.py3-none-manylinux1_x86_64.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a44b6be449ba17acaf9492a5421ca81d",
"sha256": "468d7c6b5f51dc7d6111466dc7e4e366822ca7d6de519bc7ae4a26d7f65617bd"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.0-py2.py3-none-win32.whl",
"has_sig": false,
"md5_digest": "a44b6be449ba17acaf9492a5421ca81d",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 192513,
"upload_time": "2019-05-16T08:21:46",
"url": "https://files.pythonhosted.org/packages/25/b9/e4494747ae391bf91bdf81a2e13a9c3b07bb7e1998de7b349dd1a3a0bee6/oneagent_sdk-1.2.0-py2.py3-none-win32.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fd1c4b0743120a4a59babccc2289cb5b",
"sha256": "717ed1ef8c6c38ea4c4ddc60cc552c01d35b2a8285d5268ec9a6d261d32e4eb0"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.0-py2.py3-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "fd1c4b0743120a4a59babccc2289cb5b",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 226487,
"upload_time": "2019-05-16T08:21:48",
"url": "https://files.pythonhosted.org/packages/39/a3/e519b6d7aa3d5b0696960856037ada970e17f4e6c4936ef597d70a56b1da/oneagent_sdk-1.2.0-py2.py3-none-win_amd64.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d92a597dccf5d7ff91288f41ccbb1543",
"sha256": "7a8f775e34288f523794f34557ef9e4c2de5b08dc966171bc19a20fe40f0be5f"
},
"downloads": -1,
"filename": "oneagent-sdk-1.2.0.zip",
"has_sig": false,
"md5_digest": "d92a597dccf5d7ff91288f41ccbb1543",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 77130,
"upload_time": "2019-05-16T08:21:50",
"url": "https://files.pythonhosted.org/packages/85/bc/c29dba7577cc85d420fd1e0e5d933e51d9bc38be4b738fba3c2ce56048ba/oneagent-sdk-1.2.0.zip"
}
],
"1.2.1": [
{
"comment_text": "",
"digests": {
"md5": "68011400d8fbbfd7bf6f618b96bb3766",
"sha256": "fcfa768603fa4bed2afe2243cb627472efd24cd51a905ccf579c7cd4df041f89"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.1-py2.py3-none-manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "68011400d8fbbfd7bf6f618b96bb3766",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 106448,
"upload_time": "2019-07-09T08:12:23",
"url": "https://files.pythonhosted.org/packages/f4/6c/ebeb1e588c205c1c173862dfde6dd4a8ad7116b59218ced197e750e0b914/oneagent_sdk-1.2.1-py2.py3-none-manylinux1_i686.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a93bd389d9a606469b1c0a2c07e35568",
"sha256": "4e07b98d4bcd8185eff8b139d1d6be93b0394b976b209412d1be39be54c0ce5e"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.1-py2.py3-none-manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "a93bd389d9a606469b1c0a2c07e35568",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 109053,
"upload_time": "2019-07-09T08:12:25",
"url": "https://files.pythonhosted.org/packages/6d/91/99598844755d32f3e0e7a74897bb103f8d71e46273d13730a9c82db6119a/oneagent_sdk-1.2.1-py2.py3-none-manylinux1_x86_64.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3f77a3f00e36c3cc159aed9c959124e5",
"sha256": "949ac1fef219906a36dcdc04574b732c72b30b627069b4baf21ddc60c8b0b983"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.1-py2.py3-none-win32.whl",
"has_sig": false,
"md5_digest": "3f77a3f00e36c3cc159aed9c959124e5",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 192846,
"upload_time": "2019-07-09T08:12:27",
"url": "https://files.pythonhosted.org/packages/33/a3/4aaf6cd6eeadf4ebdecbf7be2b1056a921ac8f6ad43ae3dc5367231bfaca/oneagent_sdk-1.2.1-py2.py3-none-win32.whl"
},
{
"comment_text": "",
"digests": {
"md5": "83ccd7b269d6d225689a33e4da3076df",
"sha256": "7d28e3f67e72add5fd13dad71525c2d5c0cdd5e1a6fca51c5d3d913a62ac48bf"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.1-py2.py3-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "83ccd7b269d6d225689a33e4da3076df",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 226824,
"upload_time": "2019-07-09T08:12:29",
"url": "https://files.pythonhosted.org/packages/b8/ff/8e4ec93b655bcb83ddd5d07b25520ffcceea9c1d472cfd9365796b82852c/oneagent_sdk-1.2.1-py2.py3-none-win_amd64.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6e8bd54efb9ffa0455d48b408863222c",
"sha256": "b90175ec67c009973a078a7c69b51dc7759cdbaeab34c1c0af4051055c1375ce"
},
"downloads": -1,
"filename": "oneagent-sdk-1.2.1.zip",
"has_sig": false,
"md5_digest": "6e8bd54efb9ffa0455d48b408863222c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 78721,
"upload_time": "2019-07-09T08:12:31",
"url": "https://files.pythonhosted.org/packages/de/1b/a064b2096e5f5698db30f48fc551f1d8d6cfecab8649f51177987d89509f/oneagent-sdk-1.2.1.zip"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "68011400d8fbbfd7bf6f618b96bb3766",
"sha256": "fcfa768603fa4bed2afe2243cb627472efd24cd51a905ccf579c7cd4df041f89"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.1-py2.py3-none-manylinux1_i686.whl",
"has_sig": false,
"md5_digest": "68011400d8fbbfd7bf6f618b96bb3766",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 106448,
"upload_time": "2019-07-09T08:12:23",
"url": "https://files.pythonhosted.org/packages/f4/6c/ebeb1e588c205c1c173862dfde6dd4a8ad7116b59218ced197e750e0b914/oneagent_sdk-1.2.1-py2.py3-none-manylinux1_i686.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a93bd389d9a606469b1c0a2c07e35568",
"sha256": "4e07b98d4bcd8185eff8b139d1d6be93b0394b976b209412d1be39be54c0ce5e"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.1-py2.py3-none-manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "a93bd389d9a606469b1c0a2c07e35568",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 109053,
"upload_time": "2019-07-09T08:12:25",
"url": "https://files.pythonhosted.org/packages/6d/91/99598844755d32f3e0e7a74897bb103f8d71e46273d13730a9c82db6119a/oneagent_sdk-1.2.1-py2.py3-none-manylinux1_x86_64.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3f77a3f00e36c3cc159aed9c959124e5",
"sha256": "949ac1fef219906a36dcdc04574b732c72b30b627069b4baf21ddc60c8b0b983"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.1-py2.py3-none-win32.whl",
"has_sig": false,
"md5_digest": "3f77a3f00e36c3cc159aed9c959124e5",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 192846,
"upload_time": "2019-07-09T08:12:27",
"url": "https://files.pythonhosted.org/packages/33/a3/4aaf6cd6eeadf4ebdecbf7be2b1056a921ac8f6ad43ae3dc5367231bfaca/oneagent_sdk-1.2.1-py2.py3-none-win32.whl"
},
{
"comment_text": "",
"digests": {
"md5": "83ccd7b269d6d225689a33e4da3076df",
"sha256": "7d28e3f67e72add5fd13dad71525c2d5c0cdd5e1a6fca51c5d3d913a62ac48bf"
},
"downloads": -1,
"filename": "oneagent_sdk-1.2.1-py2.py3-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "83ccd7b269d6d225689a33e4da3076df",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 226824,
"upload_time": "2019-07-09T08:12:29",
"url": "https://files.pythonhosted.org/packages/b8/ff/8e4ec93b655bcb83ddd5d07b25520ffcceea9c1d472cfd9365796b82852c/oneagent_sdk-1.2.1-py2.py3-none-win_amd64.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6e8bd54efb9ffa0455d48b408863222c",
"sha256": "b90175ec67c009973a078a7c69b51dc7759cdbaeab34c1c0af4051055c1375ce"
},
"downloads": -1,
"filename": "oneagent-sdk-1.2.1.zip",
"has_sig": false,
"md5_digest": "6e8bd54efb9ffa0455d48b408863222c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*",
"size": 78721,
"upload_time": "2019-07-09T08:12:31",
"url": "https://files.pythonhosted.org/packages/de/1b/a064b2096e5f5698db30f48fc551f1d8d6cfecab8649f51177987d89509f/oneagent-sdk-1.2.1.zip"
}
]
}