{ "info": { "author": "Alex Clark", "author_email": "aclark@aclark.net", "bugtrack_url": null, "classifiers": [ "Framework :: Buildout", "Intended Audience :: Developers", "License :: OSI Approved :: Zope Public License", "Topic :: Software Development :: Build Tools" ], "description": "Mr.Migrator: Drive-by transmogrification made easy!\n===================================================\n\nmr.migrator is a transmogrifier pipeline runner, either\nvia the commandline or as a Plone add-on.\n\n- Code repository: http://github.com/collective/mr.migrator\n- Questions and comments to http://github.com/collective/mr.migrator/issues\n- Report bugs at http://github.com/collective/mr.migrator/issues\n\n.. contents::\n\nIntroduction\n------------\n\nTransmogrifier is a powerful tool for creating transformation processes called \"pipelines\".\nTransmogrifier gives you the tools to create and share these pipelines but doesn't provide\nan easy way to run the pipeline. Mr.migrator aims to bridge that gap.\n\nMr.Migrator provides the following:\n\n- A buildout recipe with which you can override a given pipeline.\n- A commandline script (with help) which lets you run pipelines and see their progress. This\n is useful when used in conjunction with `transmogrify.ploneremote`_ or other blueprints which\n are not expected to be run inside the `Plone`_ process.\n- A Plone plugin that once installed lets you pick which pipeline you want to run,\n provides a form to override the pipeline options and then provides progress on the running\n pipeline. This is useful when you want to use `plone.app.transmogrifier`_ blueprints\n that should be run inside the `Plone`_ process.\n\nGetting a pipeline\n------------------\n\nA pipeline is a concept from `collective.transmogrifier`_ where dictionary items pass through a series\nof steps, each adding, removing or uploading information to an external source. A pipeline\nis configured in configuration file using the INI style syntax. Mr.Migrator lets you run either\npipelines you built yourself, or\n\nBuild your own pipeline\n~~~~~~~~~~~~~~~~~~~~~~~\nsee collective.transmogrifer `pipelines`_ for more details.\n\nOnce you've created your pipeline .cfg you can use it on the commandline via ::\n\n migrate --pipeline=mypipeline.cfg\n\nor if installing via buildout ::\n\n [migrate]\n recipe = mr.migrator\n pipeline = mypipeline.cfg\n\nIf you're using blueprints in your pipeline you will need to ensure that zcml configuration\nthat registers them is executed. If you are using buildout you can use the following ::\n\n [buildout]\n parts += mr.migrator\n\n [migrator]\n recipe = mr.migrator\n pipeline = mypipeline.cfg\n eggs = transmogrify.sqlalchemy\n zcml = transmogrify.sqlalchemy\n\nThis will ensure that the package that contains the blueprints is downloaded and the zcml for it\nis run before the pipeline is run so that the blueprints are registered.\n\nIf you aren't using buildout you can will need to tell the runner which packages to load zcml in via ::\n\n migrate --zcml=transmogrify.sqlalchemy,transmogrify.other\n\nIf you the blueprint package includes the following entry_point you can skip the zcml settings above ::\n\n entry-points = {\"z3c.autoinclude.plugin\":['target = transmogrify']}\n\n\nThere currently isn't a way to run a custom pipeline if using the Plone plugin. You will have\nto register it as below.\n\nUsing a Registered Pipeline\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf a pipeline has been registered inside another package via zcml such as ::\n\n \n\n \n\n \n\nand the package has an entry point that will enable the zcml to be loaded such as ::\n\n entry_points = {\"z3c.autoinclude.plugin\":['target = transmogrify']}\n\nThen you can get mr.migrator to run that pipeline via ::\n\n migrate --pipeline=exampleconfig\n\nor ::\n\n [migrate]\n recipe = mr.migrator\n pipeline = exampleconfig\n\nAn example of a package which declares a pipeline designed to be overridden is `funnelweb`_.\n\n\nOverriding pipeline values\n--------------------------\n\nPipelines are organised as a series of steps through which crawled items pass before eventually being\nuploaded. Each step as one or more configuration options so you can customise import process\nfor your needs. Almost all imports will require some level of configurations.\n\nThe first part of each configuration key is the step e.g. `crawler`. The second part is the particular\nconfiguration option for that particular step. e.g. `url`. This is then followed by = and value or values.\n\nThe configuration options can either be given as part of the buildout part e.g. ::\n\n [buildout]\n parts += mr.migrator\n\n [mr.migrator]\n recipe = mr.migrator\n crawler-url=http://www.whitehouse.gov\n\nor the same option can be overridden via the command line ::\n\n $> bin/migrate --crawler:url=http://www.whitehouse.gov\n\nsome options require multiple lines within a buildout part. These can be overridden\nvia the commandline by repeating the same argument e.g. ::\n\n $> bin/migrate --crawler:ignore=\\.mp3 --crawler:ignore=\\.pdf\n\n\nYou use the commandline help to view the list of available options ::\n\n $> bin/migrate --help\n\n\n\nControlling Logging\n~~~~~~~~~~~~~~~~~~~\n\nYou can show additional debug output on any particular set by setting a debug commandline switch.\nFor instance to see see additional details about template matching failures ::\n\n $> bin/mr.migrator --template1:debug\n \n \n\nWorking directly with transmogrifier (advanced)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nYou might need to insert further transformation steps for your particular\nconversion usecase. To do this, you can extend a plugins underlying\ntransmogrifier pipeline. mr.migrator uses a transmogrifier pipeline to perform the needed transformations and all\ncommandline and recipe options refer to options in the pipeline.\n\n\nYou can view pipeline and all its options via the following command ::\n\n $> bin/mr.migrator --show-pipeline\n\nYou can also save this pipeline and customise it for your own needs ::\n\n $> bin/mr.migrator --show-pipeline > pipeline.cfg\n $> {edit} pipeline.cfg\n $> bin/mr.migrator --pipeline=pipeline.cfg\n\nCustomising the pipeline allows you add your own personal transformations which\nhaven't been pre-considered by the standard mr.migrator tool.\n\nSee transmogrifier documentation to see how to add your own blueprints or add blueprints that\nalready exist to your custom pipeline.\n\nUsing external blueprints\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf you have decided you need to customise your pipeline and you want to install transformation\nsteps that use blueprints not already included in mr.migrator or transmogrifier, you can include\nthem using the ``eggs`` option in a mr.migrator buildout part ::\n\n [mr.migrator]\n recipe = mr.migrator\n eggs = myblueprintpackage\n pipeline = mypipeline.cfg\n\nHowever, this only works if your blueprint package includes the following setuptools entrypoint\nin its ``setup.py`` ::\n\n entry_points=\"\"\"\n [z3c.autoinclude.plugin]\n target = transmogrify\n \"\"\",\n )\n\n.. NOTE:: Some transmogrifier blueprints assume they are running inside a Plone\n process such as those in `plone.app.transmogrifier` (see http://pypi.python.org/pypi/plone.app.transmogrifier). mr.migrator\n doesn't run inside a Plone process so these blueprints won't work. If\n you want upload content into Plone, you can instead use\n transmogrify.ploneremote which provides alternative implementations\n which will upload content remotely via XML-RPC.\n ``transmogrify.ploneremote`` is already included in funnelweb as it is\n what funnelweb's default pipeline uses.\n\nHelp syntax for pipeline configuration\n--------------------------------------\n\nTODO\n\nMr.Migrator in Plone\n--------------------\n\n***under development***\n\nMr.Migrator needs to be combined with a package providing a registered pipeline.\n\n1. Install mr.migrator into your buildout\n2. Install a package providing your pipeline such as funnelweb or collective.jsonmigrator\n3. Go to the place in your site where you want to import content and select Actions > Mr.Migrate here (alternatively, open the URL ``@@mr.migrator``)\n4. Pick the pipeline you want from the drop down list\n5. A form for filling in extra configuration for your pipeline will displayed\n (either autogenerated from the .cfg or a form designed by the pipeline author)\n6. Click run\n7. Popup a progress feedback dialog with a log of activity\n\nTODO\n----\n\n- Finish autoform so works in all cases\n- combine argsparse and autoform code\n- do progress dialog\n- hook point for packages to register form along with pipeline\n- when no pipelines found: display help on where to find them and how to install them\n\n\nContributing\n------------\n\n- Code repository: http://github.com/collective/mr.migrator\n- Questions and comments to http://github.com/collective/mr.migrator/issues\n- Report bugs at http://github.com/collective/mr.migrator/issues\n\n\nThanks\n------\n\n- Alex Clark - for the name\n- Rok Garbas - the original code for the z3cform\n- Dylan Jay - the original code of the commandline runner\n\n\n.. _`pipelines`: http://pypi.python.org/pypi/collective.transmogrifier/#pipelines\n.. _`collective.transmogrifier`: http://pypi.python.org/pypi/collective.transmogrifier\n.. _`funnelweb`: http://pypi.python.org/pypi/funnelweb\n.. _`plone`: http://plone.org\n.. _`plone.app.transmogrifier`: http://pypi.python.org/pypi/plone.app.transmogrifier\n.. _`transmogrify.ploneremote`: http://pypi.python.org/pypi/transmogrify.ploneremote\n\n\n\nContributors\n============\n\n* \"Dylan Jay\", Author\n* \"Alex Clark\", Maintainer\n* \"Leonardo J. Caballero G.\", Tester, Spanish translator\n\nChangelog\n=========\n\n1.2 (2017-05-15)\n----------------\n\n- Add Spanish translation.\n [macagua]\n\n- Added more improvements about i18n support.\n [macagua]\n\n- Added Buildout configuration file for Plone 4.3.x version.\n [macagua]\n\n- Fix IOError: [Errno 2] No such file or directory: mr/migrator/autoinclude.zcml missing file.\n [macagua]\n\n- Updated Buildout configuration file for Plone 3.3.x version.\n [macagua]\n\n- Fix form problem with security hotfix 20160830\n [agitator]\n\n\n1.1 (2015-10-22)\n----------------\n\n- Remove browserlayer registration, so the ``mr.migrator`` doesn't have to be\n installed to be used. Calling ``/@@mr.migrator`` is enough.\n\n- Add uninstallation profile.\n [thet]\n\n- Allow any pipeline configuration to be imported through the web at the\n ``@@mr.migrator`` view. Previously, only those pipelines were shown, which\n had a ``plone.app.transmogrifier.atschemaupdater`` blueprint included. Now\n any pipelines can be used, e.g. those which handle only Dexterity objects.\n [thet]\n\n- Pep8.\n [thet]\n\n\n1.0.1 (2012-09-18)\n------------------\n\n- put back in manual zcml loading [djay]\n\n1.0 (2012-04-28)\n----------------\n- fix setup.py issue breaking buildout [djay]\n- fixed NameError: global name 'cparser' is not defined, issue #6 [gborelli]\n- fix default profile [toutpt]\n- fix import error [toutpt]\n\n1.0b11 (2012-04-25)\n-------------------\n- support pipeline includes [djay]\n\n1.0b10 (2012-01-23)\n-------------------\n\n- Revert portion of ec799dcd3d, causing ConfigurationErrors\n [aclark]\n\n1.0b9 (2012-01-23)\n------------------\n\n- Fix brown bag release (bad MANIFEST)\n [aclark]\n\n1.0b8 (2012-01-23)\n------------------\n\n- Fix brown bag release (missing zcml)\n [aclark]\n\n1.0b7 (2012-01-23)\n------------------\n\n- Look for pipeline.cfg in cwd\n [aclark]\n\n1.0b6 (2012-01-23)\n------------------\n\n- Fix brown bag release\n [aclark]\n\n1.0b5 (2012-01-22)\n------------------\n\n- Bug fix: support for --zcml arguments\n [aclark]\n\n1.0b4 (2011-08-14)\n------------------\n\n- Bug fix: ZCML config\n [aclark]\n\n1.0b3 (2011-08-14)\n------------------\n\n- Bug fix: ZCML config\n [aclark]\n\n1.0b2 (2011-08-14)\n------------------\n\n- Bug fix: Python 2.4 compat\n [aclark]\n\n1.0b1 (2011-06-29)\n------------------\n\n- allow way of running zcml for blueprint packages in commandline\n [djay]\n\n- split out commandline runner from funnelweb\n [djay]\n\n- add start of form for running transmogrifier inside plone\n [djay]", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/mr.migrator", "keywords": "buildout crawler spider plone transmogrifierless", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "mr.migrator", "package_url": "https://pypi.org/project/mr.migrator/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/mr.migrator/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/collective/mr.migrator" }, "release_url": "https://pypi.org/project/mr.migrator/1.2/", "requires_dist": null, "requires_python": null, "summary": "Drive-by transmogrifiction made easy!", "version": "1.2" }, "last_serial": 2874461, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "8ae7032c0856796d675c819a133bce28", "sha256": "43ea597e76ebdf3b8e4fd7b1516f7805eacc0892a9d800f951147808a21eef55" }, "downloads": -1, "filename": "mr.migrator-1.0.tar.gz", "has_sig": false, "md5_digest": "8ae7032c0856796d675c819a133bce28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20098, "upload_time": "2012-06-28T15:31:25", "url": "https://files.pythonhosted.org/packages/a7/90/b6f54454d74703e23c7b3f431c10bb247c5a4f0f522ef5316ff0bc50a72a/mr.migrator-1.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "f7de72933fccb2dacef21e000db4cc95", "sha256": "a42dd29061067840eecd8a3ccf7763056d8a707bdf2a5f24943f9eba518692e7" }, "downloads": -1, "filename": "mr.migrator-1.0.zip", "has_sig": false, "md5_digest": "f7de72933fccb2dacef21e000db4cc95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34494, "upload_time": "2012-06-28T14:37:38", "url": "https://files.pythonhosted.org/packages/cf/2a/7e96e348790921debced70d2ae68bd2acca3b22b55d873496575b5def19c/mr.migrator-1.0.zip" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "49eabaddf1fd24dae1a1fd0d10992965", "sha256": "71a8aee55c8edd2c215f0274dfeaf79afcb7985a0f0d1d30b736bc6ff0f3d51d" }, "downloads": -1, "filename": "mr.migrator-1.0.1.zip", "has_sig": false, "md5_digest": "49eabaddf1fd24dae1a1fd0d10992965", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 653853, "upload_time": "2012-09-19T03:49:58", "url": "https://files.pythonhosted.org/packages/a5/e2/e7e040eb7e50811967031f199586ceedd3d736282d9a0b95028d77fc6341/mr.migrator-1.0.1.zip" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "504c76be8a57d2dcfaefe4e1fb157036", "sha256": "fecf0b605d8cc7755e040cdeba6a93e78147f6ae133b1a281b659ff02d50e618" }, "downloads": -1, "filename": "mr.migrator-1.0b1.zip", "has_sig": false, "md5_digest": "504c76be8a57d2dcfaefe4e1fb157036", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26769, "upload_time": "2011-06-29T17:40:39", "url": "https://files.pythonhosted.org/packages/8f/d8/5c20db0016289323a5562e521455543d431826e53b52c07dce2eea465d67/mr.migrator-1.0b1.zip" } ], "1.0b10": [ { "comment_text": "", "digests": { "md5": "8af435b986a97d6eec002c598b8918f0", "sha256": "9ff8ce3af4bec1cb9fd4790a09d25a7784766798e5aa01152874ffb9c5381418" }, "downloads": -1, "filename": "mr.migrator-1.0b10.tar.gz", "has_sig": false, "md5_digest": "8af435b986a97d6eec002c598b8918f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13521, "upload_time": "2012-01-23T17:32:45", "url": "https://files.pythonhosted.org/packages/e7/e8/a97de95573aecc501a426722beec5cf5eaf681f3dd067b12d17c26519289/mr.migrator-1.0b10.tar.gz" } ], "1.0b11": [ { "comment_text": "", "digests": { "md5": "b83de64ea3e1ab5591afbe6b370bcae0", "sha256": "aab5095b38cf68d1c139ee5fbf8560ae70eac6a047c50fbd9ccee35259fe9ea9" }, "downloads": -1, "filename": "mr.migrator-1.0b11.zip", "has_sig": false, "md5_digest": "b83de64ea3e1ab5591afbe6b370bcae0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34376, "upload_time": "2012-04-25T09:44:52", "url": "https://files.pythonhosted.org/packages/be/3b/5cd6b49c480f7eb5c2100b53a09f2a9dcb3f5e0b4d1dd494c666ef6b5b52/mr.migrator-1.0b11.zip" } ], "1.0b2": [ { "comment_text": "", "digests": { "md5": "a80a1d248b87d7afe5237c29bc6cf86a", "sha256": "a30f865ddd4861069e34fea9ee5c62641ea6c1b64d21a2dff4148256213ee16a" }, "downloads": -1, "filename": "mr.migrator-1.0b2.zip", "has_sig": false, "md5_digest": "a80a1d248b87d7afe5237c29bc6cf86a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31477, "upload_time": "2011-08-14T18:13:47", "url": "https://files.pythonhosted.org/packages/d2/90/47adbd2767dbf56e9955818c5c0ef582edf78a9aca7f397663c5f16e7945/mr.migrator-1.0b2.zip" } ], "1.0b3": [ { "comment_text": "", "digests": { "md5": "6fc21e1e8cfe58dd3c3fc4096489cc47", "sha256": "f135afd28dbc5dbb51af29867753a2499d00dd05b5018cef3c575a35c58590f3" }, "downloads": -1, "filename": "mr.migrator-1.0b3.zip", "has_sig": false, "md5_digest": "6fc21e1e8cfe58dd3c3fc4096489cc47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31537, "upload_time": "2011-08-15T02:01:42", "url": "https://files.pythonhosted.org/packages/78/bf/5fce4fa9d15f40002879499129860ec6e83326ad2211d1e22b5778d5903e/mr.migrator-1.0b3.zip" } ], "1.0b4": [ { "comment_text": "", "digests": { "md5": "ee2049d6c286a9397aa0d794184cdf29", "sha256": "f2d122969a4ce0690968a3cc18774f8af1a17bd6d04b8943b794bb141204726b" }, "downloads": -1, "filename": "mr.migrator-1.0b4.zip", "has_sig": false, "md5_digest": "ee2049d6c286a9397aa0d794184cdf29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31628, "upload_time": "2011-08-15T02:14:30", "url": "https://files.pythonhosted.org/packages/a1/29/7e595e4e58588f74137abf30503edc29f9eef96ff9c31ea74a0f60059752/mr.migrator-1.0b4.zip" } ], "1.0b5": [ { "comment_text": "", "digests": { "md5": "43eddf81f3057400d53bef0da840b43e", "sha256": "90112c69da038be5a00403eabb699963ae52c55accaa441b174cb0ea67721e58" }, "downloads": -1, "filename": "mr.migrator-1.0b5.tar.gz", "has_sig": false, "md5_digest": "43eddf81f3057400d53bef0da840b43e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10902, "upload_time": "2012-01-23T03:11:37", "url": "https://files.pythonhosted.org/packages/ca/5c/eb140639bf33ca8fb6ed4efad5d1f78527d37d9004cde74883a79cbb0306/mr.migrator-1.0b5.tar.gz" } ], "1.0b6": [ { "comment_text": "", "digests": { "md5": "4f565cd829f36b74c4d587c0d89d5e4f", "sha256": "ec382cbe16b85ec13c9df09d502a3793c61aec9d16cb0933b11bf336d1500fe3" }, "downloads": -1, "filename": "mr.migrator-1.0b6.tar.gz", "has_sig": false, "md5_digest": "4f565cd829f36b74c4d587c0d89d5e4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19141, "upload_time": "2012-01-23T14:05:53", "url": "https://files.pythonhosted.org/packages/24/b2/083515c87c73da589cf813f7fe7a8297d1ccd79e90977f16bd863579de77/mr.migrator-1.0b6.tar.gz" } ], "1.0b7": [ { "comment_text": "", "digests": { "md5": "308b6d386176507d254356b279705cd7", "sha256": "c3b7074220428089f800ca2168dfe3d4865d223171e26250dbe1e6e9bb7a1ab6" }, "downloads": -1, "filename": "mr.migrator-1.0b7.tar.gz", "has_sig": false, "md5_digest": "308b6d386176507d254356b279705cd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12085, "upload_time": "2012-01-23T15:18:13", "url": "https://files.pythonhosted.org/packages/f1/93/b6fb813fab192ed1dbbffa78e4b68a21bc273561bf9f41fd02af17259484/mr.migrator-1.0b7.tar.gz" } ], "1.0b8": [ { "comment_text": "", "digests": { "md5": "f7cd3e69b26c228ca918a0fb2d81d552", "sha256": "06c4fdbcf403e87391ee89351c5006dad096f39ae118cdf6a80ce365661c23a4" }, "downloads": -1, "filename": "mr.migrator-1.0b8.tar.gz", "has_sig": false, "md5_digest": "f7cd3e69b26c228ca918a0fb2d81d552", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12102, "upload_time": "2012-01-23T15:46:57", "url": "https://files.pythonhosted.org/packages/65/d9/0ed95521319fbf0d7385f757806f6efd83693c963dbf83baf1834b5fe4c1/mr.migrator-1.0b8.tar.gz" } ], "1.0b9": [ { "comment_text": "", "digests": { "md5": "a95dfa0e241f48f1db0f63f6d86330b5", "sha256": "5fde731635d0c178d509c3556f96cfdd124c6a8d6efea2d7887477f106b4c1b6" }, "downloads": -1, "filename": "mr.migrator-1.0b9.tar.gz", "has_sig": false, "md5_digest": "a95dfa0e241f48f1db0f63f6d86330b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13376, "upload_time": "2012-01-23T16:46:32", "url": "https://files.pythonhosted.org/packages/44/b2/d9fe1e9238988a9951a44b403f06e5c4ca61fef4405524b10b35759b5079/mr.migrator-1.0b9.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "a90b087081b1ae8b8f97f9a981fef5cc", "sha256": "0629a4d0304e3fcd2a35224706ef91b99bd6d6df2f0bb0000715e48d0b721580" }, "downloads": -1, "filename": "mr.migrator-1.1.tar.gz", "has_sig": false, "md5_digest": "a90b087081b1ae8b8f97f9a981fef5cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19336, "upload_time": "2015-10-22T21:26:39", "url": "https://files.pythonhosted.org/packages/6b/80/f2c59b563e87d63aa463b5843eecc4a22703bf8f5ef37945d1b77c8d1966/mr.migrator-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "f597fcc10fc2f095d80b9b76d6c5f4bb", "sha256": "e619e8183715de902196abbfea3ffd6f6f012eb49f11867411fc4a2aaaac4760" }, "downloads": -1, "filename": "mr.migrator-1.2.tar.gz", "has_sig": false, "md5_digest": "f597fcc10fc2f095d80b9b76d6c5f4bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39974, "upload_time": "2017-05-15T03:53:33", "url": "https://files.pythonhosted.org/packages/41/d6/1309751a99b7f43a8637b3b65f958cc26e18776f28344c9dd5417d283cae/mr.migrator-1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f597fcc10fc2f095d80b9b76d6c5f4bb", "sha256": "e619e8183715de902196abbfea3ffd6f6f012eb49f11867411fc4a2aaaac4760" }, "downloads": -1, "filename": "mr.migrator-1.2.tar.gz", "has_sig": false, "md5_digest": "f597fcc10fc2f095d80b9b76d6c5f4bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39974, "upload_time": "2017-05-15T03:53:33", "url": "https://files.pythonhosted.org/packages/41/d6/1309751a99b7f43a8637b3b65f958cc26e18776f28344c9dd5417d283cae/mr.migrator-1.2.tar.gz" } ] }