{ "info": { "author": "Spot Media Solutions Sdn. Bhd.", "author_email": "daniel@atomx.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: ISC License (ISCL)", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Internet", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Python Atomx Api\n================\n\nInterface for the atomx rest api.\n\nFor more information read the full\n`documentation online `_,\nreport bugs in `github `_\nor see the `atomx wiki `_\n\n\nExample Usage\n-------------\n\n.. code-block:: python\n\n from atomx import Atomx\n\n # create atomx session\n atomx = Atomx('user@example.com', 'password')\n\n # get 10 creatives\n creatives = atomx.get('Creatives', limit=10)\n # the result is a list of `atomx.models.Creative` models\n # that you can easily inspect, manipulate and update\n for creative in creatives:\n print('Creative ID: {c.id}, state: {c.state}, '\n 'name: {c.name}, title: {c.title}'.format(c=creative))\n\n # update title for the first creative in list\n creative = creatives[0]\n creative.title = 'shiny new title'\n # the session is inherited from `atomx` that made the get request\n creative.save()\n\n\n # create a new profile\n from atomx.models import Profile\n profile = Profile(advertiser_id=23, name='test profile')\n # Note that you have to pass it a valid `Atomx` session for create\n # or use `atomx.create(profile)`\n profile.create(atomx)\n\n # now you could alter and update it like the creative above\n profile.name = 'changed name'\n profile.save()\n\n\n # you can also get attributes\n profiles = atomx.get('advertiser', 88, 'profiles')\n # equivalent is to pass the complete resource path as string instead of arguments\n profiles = atomx.get('advertiser/88/profiles') # same as above\n # profiles is now a list of `atomx.models.Profile` that you can\n # read, update, etc again.\n profiles[0].click_frequency_cap_per = 86400\n profiles[0].save()\n\n\n # working with search\n s = atomx.search('mini*')\n # s is now a dict with lists of search results for the different models\n # with the model id and name\n\n publisher = s['publisher'][0] # get the first publisher..\n publisher.reload() # .. and load all the data\n print(publisher) # now all publisher data is there\n publisher.history() # gets all changes made to this publisher\n\n\n # reporting example\n # get a report for a specific publisher\n report = atomx.report(scope='publisher', groups=['hour'], metrics=['impressions', 'clicks'], where=[['publisher_id', '==', 42]], from_='2015-02-08 00:00:00', to='2015-02-09 00:00:00', timezone='America/Los_Angeles')\n # check if report is ready\n print(report.is_ready)\n # if pandas is installed you can get the pandas dataframe with `report.pandas`\n # you can also get the report csv in `report.content` without pandas\n df = report.pandas # A datetime index is automatically set when group by a hour/day/month.\n # calculate mean, median, std per hour\n means = df.resample('H', how=['mean', 'median', 'std'])\n # and plot impression and clicks per day\n means['impressions'].plot()\n means['clicks'].plot()\n\n\nInstallation\n------------\n\nTo install the python atomx api, simply:\n\n.. code-block:: bash\n\n $ pip install atomx\n\nor if you want to use ipython notebook and reporting functionality:\n\n.. code-block:: bash\n\n $ pip install atomx[report]\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/atomx/atomx-api-python", "keywords": "atomx rest api", "license": "ISC", "maintainer": "", "maintainer_email": "", "name": "atomx", "package_url": "https://pypi.org/project/atomx/", "platform": "", "project_url": "https://pypi.org/project/atomx/", "project_urls": { "Homepage": "https://github.com/atomx/atomx-api-python" }, "release_url": "https://pypi.org/project/atomx/1.7/", "requires_dist": null, "requires_python": "", "summary": "python interface for the atomx api on https://api.atomx.com", "version": "1.7" }, "last_serial": 3281222, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "3b3a9d0af0902b84b323605e4558876b", "sha256": "d234fb05ca5c6b5b4cb005acb564db709c871341d1a57d47261b3bb0a3d789a5" }, "downloads": -1, "filename": "atomx-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3b3a9d0af0902b84b323605e4558876b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19426, "upload_time": "2015-07-05T12:01:04", "url": "https://files.pythonhosted.org/packages/dd/84/0fa6e04055d279470222f4985c1fb371b1891556d51908eb8137ffe69776/atomx-1.0.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "76bb07209e2c371a83c3bc0435f13121", "sha256": "71d34de6998aa7bf553241710c37d689dc22d20dff2d5dfbf012c08c6e6a54d8" }, "downloads": -1, "filename": "atomx-1.1.tar.gz", "has_sig": false, "md5_digest": "76bb07209e2c371a83c3bc0435f13121", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24404, "upload_time": "2015-07-26T23:23:36", "url": "https://files.pythonhosted.org/packages/01/23/7ad9309dac1f0d9ada6fe9faf8580a945b781a4e8e815bcf13280a7ad8fd/atomx-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "a93fe26e6f4bf70c8329758f3320ca4a", "sha256": "6293e3e80c73a9c96b33f083c752e2ee8440b5338dfdfb6174071adc0ad2b561" }, "downloads": -1, "filename": "atomx-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a93fe26e6f4bf70c8329758f3320ca4a", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 14208, "upload_time": "2015-08-13T09:52:35", "url": "https://files.pythonhosted.org/packages/e3/48/7ad68421b38cea09e9f893426baf03c261dd595735df76ae2af700991ea4/atomx-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7df1bb4ce409f28a298c6e5acbe2c2c7", "sha256": "3f72d19ba2c88a68a8d066993430e4e993557045bf97c4ed8acdf92807096edd" }, "downloads": -1, "filename": "atomx-1.2.tar.gz", "has_sig": false, "md5_digest": "7df1bb4ce409f28a298c6e5acbe2c2c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24732, "upload_time": "2015-08-13T09:52:31", "url": "https://files.pythonhosted.org/packages/1d/2e/a9ba73e5c67dc002ea8fbcd351e58977441cfb8a3f2d6c97417321dd0c91/atomx-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "bcf516ea547558f3a698e4af948c01ed", "sha256": "1d97220630198b22e2928b6581335844e4fe6f63638fd2aaccd523c64d91d673" }, "downloads": -1, "filename": "atomx-1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bcf516ea547558f3a698e4af948c01ed", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 15517, "upload_time": "2015-10-07T06:33:29", "url": "https://files.pythonhosted.org/packages/19/8e/fea7d966584933223665e8bdb657c0de4dfa0554c95711149d277bc1456c/atomx-1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "229666fe164196849a322ed3be92915e", "sha256": "1a3f8c3d73eaebd5fe9d1aadcafdec9adbdf085c7998db09eae21c54419c4591" }, "downloads": -1, "filename": "atomx-1.3.tar.gz", "has_sig": false, "md5_digest": "229666fe164196849a322ed3be92915e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25937, "upload_time": "2015-10-07T06:33:21", "url": "https://files.pythonhosted.org/packages/6f/d1/0f5fa20063cfcf36b2234fd836919f0c355df8a4f7ee0f8cc86ba4e0485a/atomx-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "01346f2c22522a2ee5a326de785e740e", "sha256": "987eac6421f4da9c443a427080d79b911b75a87e91e570774af685b5ca8f80a9" }, "downloads": -1, "filename": "atomx-1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "01346f2c22522a2ee5a326de785e740e", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 15932, "upload_time": "2015-10-30T13:56:59", "url": "https://files.pythonhosted.org/packages/07/1b/ec4539b23ce5fad7cb6a9eb34b3e0129a6bfc05b8d745fed8b86c9cd414a/atomx-1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "895996ef0f8e139fb17c4466a2d6b6ba", "sha256": "6da55874bf48a94fb97c895248ab44040ac6413f64b708e1f276426c1e90a563" }, "downloads": -1, "filename": "atomx-1.4.tar.gz", "has_sig": false, "md5_digest": "895996ef0f8e139fb17c4466a2d6b6ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26379, "upload_time": "2015-10-30T13:56:53", "url": "https://files.pythonhosted.org/packages/64/77/0e9ef1b1ceaf23418ccc73be73549db1fae385ab4806a67e37abc5a21202/atomx-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "623b29e4b2a44b0e836d61f61aaf416e", "sha256": "8ca343f17107fcfd0613392490abb0e5fce82b8b1847781baf04b9086e5a59f6" }, "downloads": -1, "filename": "atomx-1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "623b29e4b2a44b0e836d61f61aaf416e", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 14588, "upload_time": "2016-05-16T05:41:47", "url": "https://files.pythonhosted.org/packages/2a/68/aa3797d7159b397f20967863da2b07b4fe9b1bd7d57e28f199def4d854fd/atomx-1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7dacc3fb6287f737c0059bb1a8d110f0", "sha256": "d3a0dee2e5f94d43e0748dfae6deee4d8e475656c0653446fd91e4172b876dba" }, "downloads": -1, "filename": "atomx-1.5.tar.gz", "has_sig": false, "md5_digest": "7dacc3fb6287f737c0059bb1a8d110f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26473, "upload_time": "2016-05-16T05:41:40", "url": "https://files.pythonhosted.org/packages/f5/8c/a230c643816b3abdbc7964b6426404666d27e807936ed55b5bf57a226cae/atomx-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "04e7551ffb8a15ff79f32e471301f73e", "sha256": "63f107e75f871512273594c0a12f416504e2d6da20fcc3adda7d5f7fb83bb933" }, "downloads": -1, "filename": "atomx-1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "04e7551ffb8a15ff79f32e471301f73e", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15063, "upload_time": "2017-01-25T07:22:50", "url": "https://files.pythonhosted.org/packages/c9/65/3c64bf189a654bc8aa84207ba471377b98f7ff8d0007bdbe6d01d31d644a/atomx-1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "631447a20ec4aa32d41329661e355c3b", "sha256": "9a504540cdaf2b25966e6ec66f420206ed0291b0a54457edb54bb4cfae52443f" }, "downloads": -1, "filename": "atomx-1.6.tar.gz", "has_sig": false, "md5_digest": "631447a20ec4aa32d41329661e355c3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27102, "upload_time": "2017-01-25T07:22:47", "url": "https://files.pythonhosted.org/packages/49/bd/12f072f578ca7a821b1ce7a80c13099b57248511318e8e88990a12305646/atomx-1.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "c30080cd11c30b40951d09665754546f", "sha256": "a12f705db62238753c44c5887eb1db97ac7edf830846d1803b88f429d98c666b" }, "downloads": -1, "filename": "atomx-1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c30080cd11c30b40951d09665754546f", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15523, "upload_time": "2017-10-26T14:56:46", "url": "https://files.pythonhosted.org/packages/89/20/2a9537f020c3eb8b9da96c0d648ae6875884b7fa7659563044d806fe01ef/atomx-1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0996926a57a5103c3f47063d7cc3ef3c", "sha256": "f94daa432ac51b31004c49697c0ce9dffb6415a163304671ef6cf43af255b653" }, "downloads": -1, "filename": "atomx-1.7.tar.gz", "has_sig": false, "md5_digest": "0996926a57a5103c3f47063d7cc3ef3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29276, "upload_time": "2017-10-26T14:56:44", "url": "https://files.pythonhosted.org/packages/fe/4b/535c66f97e2a258a914aa75b2a88e0800ba75f6b328555f2b2e2778fd841/atomx-1.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c30080cd11c30b40951d09665754546f", "sha256": "a12f705db62238753c44c5887eb1db97ac7edf830846d1803b88f429d98c666b" }, "downloads": -1, "filename": "atomx-1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c30080cd11c30b40951d09665754546f", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15523, "upload_time": "2017-10-26T14:56:46", "url": "https://files.pythonhosted.org/packages/89/20/2a9537f020c3eb8b9da96c0d648ae6875884b7fa7659563044d806fe01ef/atomx-1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0996926a57a5103c3f47063d7cc3ef3c", "sha256": "f94daa432ac51b31004c49697c0ce9dffb6415a163304671ef6cf43af255b653" }, "downloads": -1, "filename": "atomx-1.7.tar.gz", "has_sig": false, "md5_digest": "0996926a57a5103c3f47063d7cc3ef3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29276, "upload_time": "2017-10-26T14:56:44", "url": "https://files.pythonhosted.org/packages/fe/4b/535c66f97e2a258a914aa75b2a88e0800ba75f6b328555f2b2e2778fd841/atomx-1.7.tar.gz" } ] }