{ "info": { "author": "Harald Friessnegger", "author_email": "office@lovelysystems.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.1", "Framework :: Plone :: 4.2", "Framework :: Plone :: 4.3", "Programming Language :: Python" ], "description": ".. contents::\n\n\nWhy use this?\n=============\n\nStandardized sampledata makes it soo much easier to work on a project\n(especially when working in teams).\n\nThis package eases the generation of sampledata for your plone project.\n\n\nHow to use it\n=============\n\nFor developers working on a project there's a view listing and running\nall available sampledata plugins:\n\nhttp://localhost/plone/@@sampledata\n\n.. image:: https://raw.githubusercontent.com/collective/wm.sampledata/master/docs/screenshot.png\n :alt: Screenshot of the @@sampledata with enabled example plugin\n\nBy default the view does not list any plugins.\nThe screen above shows the example plugin activated via ````.\n\n\nWriting and registering your custom sampledata plugin is very easy:\n\n.. code-block:: python\n\n from wm.sampledata import utils\n\n class MyPlugin(object):\n implements(ISampleDataPlugin)\n\n title = u\"My Plugin Content\"\n description = u\"Creates a portlet and a random image\"\n\n def generate(self, context):\n portlet = StaticAssignment(u\"Sample Portlet\", \"

some content

\")\n utils.addPortlet(context, 'plone.leftcolumn', portlet)\n\n utils.createImage(context, 'random-nature.jpg',\n file = utils.getRandomImage(category='nature', gray=False),\n title=u\"Random Image\",\n description=u\"Downloaded from lorempixel.com\")\n\n utils.createImage(context, 'random-sportscar.jpg',\n file = utils.getRandomFlickrImage(keywords=['car','sport'],\n match_all_keywords=True,\n gray=False),\n title=u\"Random Flickr Image\",\n description=u\"Downloaded from loremflickr.com\")\n\n myPlugin = MyPlugin()\n component.provideUtility(myPlugin,\n ISampleDataPlugin\n 'my.plugin')\n\nSee `wm.sampledata.example`__\nfor a complete example of a custom plugin.\n\n.. __: http://dev.plone.org/collective/browser/wm.sampledata/trunk/wm/sampledata/example\n\n\n\nYou can also group plugins (and even other plugin-gropus) so users need to run only one plugin to setup their sampledata correctly.\n\n.. code-block:: python\n\n from wm.sampledata import PluginGroup\n\n class TestPortal(PluginGroup):\n\n PLUGINS = [\n MyPlugin, # also 'my.plugin' could be used\n MainMenu,\n AnotherPluginGroup,\n ]\n\n title = u\"Complete Test Portal\"\n description = u\"Creates Main Menu items, Sampledata Folder and Portlets\"\n\nNote that you can use the utility names as well in `PLUGINS` but using classes directly is more straight forward in most cases.\n\n\nThere is a growing set of utility methods in ``wm.sampledata.utils`` (eg for\nhandling portlets and files, or download images from http://lorempixel.com)\nwhich you can use in your plugins.\n\n\nInstallation\n============\n\n\nSimply add ``wm.sampledata`` to your buildout's instance eggs - a zcml slug is not needed\nin plone versions that ship with z3c.autoinclude (Plone>=3.3)::\n\n [buildout]\n ...\n eggs =\n ...\n wm.sampledata\n\n\n\nWhy yet another package?\n========================\n\nThere are several other packages for generating test/sampledata but none of them\nfitted my usecase. (Which is providing a user interface for pluggable sampledata generators\nso developers/skinners can use standardized data when developing on a project)\n\nA while ago i `asked what other people do on plone.users`__\n\n.. __: http://plone.293351.n2.nabble.com/Best-way-to-create-sampledata-for-tests-and-development-tp338487p338487.html\n\n\nz3c.sampledata\n Would do the same and much more (dependencies, groups, configuration ui for each plugin)\n\n for me it was too complex to get it running on my zope2 instance and it\n seems to be tailored for zope3 anyway.\n\n Basically it would be great to make wm.sampledata use z3c.sampledata\n and provide plone specific plugins for it.\n\n .. http://comments.gmane.org/gmane.comp.web.zope.plone.devel/17379\n\n\n`zopyx.ipsumplone`_\n Seems to provide very similar utility methods.\n No pluggable Generators, No User-Interface\n\n .. _`zopyx.ipsumplone`: https://pypi.python.org/pypi/zopyx.ipsumplone/\n\n\n`ely.contentgenerator`_\n provides a xml syntax to create samplecontent,\n might be useful to use in custom plugins\n\n .. _`ely.contentgenerator`: http://ely.googlecode.com/svn/ely.contentgenerator\n\n\ncollective.contentgenerator\n looks like this is meant for creating (random) sampledata for stresstests\n\n\n`collective.lorem`_\n content action to fill content with lorem-ipsum text and provides `utility methods\n `_\n `createStandardContent` to create random content (news, documents, files, image)\n and `createNestedStructure` to create arbitrary nested folder structures.\n\n .. _`collective.lorem`: http://pypi.python.org/pypi/collective.lorem/\n\n\n`collective.loremipsum`_\n Allows to create members (names taken from fakenamegenerator.com)\n\n .. _`collective.loremipsum`: https://github.com/collective/collective.loremipsum\n\n\n`zettwerk.setup`_\n contains utility methods for setuphandlers. the one in structure.py offers\n a method to create content out of a list of dictionaries.\n\n .. _`zettwerk.setup`: https://github.com/collective/zettwerk.setup/blob/master/zettwerk/setup/structure.py\n\n\nTODO\n====\n\nInclude Ipsum Ipsum text obtained via the api from http://www.randomtext.me/\n\n(for other interesting/funny generators see\nhttp://designshack.net/articles/inspiration/30-useful-and-hilarious-lorem-ipsum-generators/)\n\nuse plone.api in utility methods or replace them with plone.api where\nappropriate\n\neventually provide api to use fakenamegenerator.com for names\n(collective.loremipsum already uses that)\n\n\n\n\n\nContribute\n==========\n\nIf you have any ideas for improvement or know another alternative to this package please `File a ticket `_ or `drop me a mail `_\n\n\nChangelog\n=========\n\n0.7.0 (2021-04-29)\n------------------\n\n- setting env variable CI=true allows to disable image download\n (useful for running tests that generate sampledata)\n\n\n0.6.1 (2019-10-29)\n------------------\n\n- use pypi compatible email-address in setup.py\n\n0.6.0 (2019-10-29)\n------------------\n\n- use python-requests for downloading images\n\n- breaking: return image data as string (no StringIO buffers)\n\n- `utils.get_placeholder_image` allows to obtain images from\n https://placeholder.com/\n [fRiSi]\n\n\n0.5.2 (2016-06-14)\n------------------\n\n- Fix the user agent switcher to be compatible with Mac/Windows.\n [pcdummy]\n\n\n0.5.1 (2016-05-03)\n------------------\n\n- Add a user-agent to the image downloader.\n [pcdummy]\n\n\n0.5 (2016-03-31)\n----------------\n\n- `util.getFlickrImage` and `utils.getRandomFlickrImage` allow to obtain images from loremflickr.com.\n [pcdummy, fRiSi]\n\n\n0.4 (2016-03-08)\n----------------\n\n- Classes can be used to define plugin groups as well as utility names\n [pcdummy]\n\n\n0.3 (2014-08-25)\n----------------\n\n- utils.doWorkflowTransition uses plone_utils internally since\n portal_workflow.doActionFor does not set the effective date when publishing\n\n- errors raised in finally clause did not pop up with debug=True\n\n- added utility function ``createFile`` to create file-content the same way\n as ``createImage`` creates image-content.\n\n- replace _createObjectByType with invokeFactory since - despite a little better\n performance - it has some nasty side-effects. eg the ``_at_creation_flag`` is\n is not properly handeled\n\n- added utility function ``raptus_hide_for`` and ``raptus_show_for`` to be able\n to hide and show content items in specific raptus.article components.\n\n (see https://pypi.python.org/pypi/raptus.article.default for more information\n on raptus.article)\n\n0.2.2 (2013-05-08)\n------------------\n\n- add traceback logging on errors [saily]\n\n- added utility functions (``utils.getImage`` and ``utils.getRandomImage``) to\n download images from lorempixel.com (see wm.sampledata.example for usage)\n [fRiSi]\n\n- more intuitive syntax for blockPortlets (change breaks backward\n compatibility) [fRiSi]\n\n0.2.1 (2012-05-29)\n------------------\n\n- fix links for running plugins so they work for\n http://host/plonesite/@@sampledata, too. (not just http://host/@@sampledata)\n [fRiSi]\n\n- added utility method `constrainTypes` to set which objects an be added to\n folderish objects [fRiSi]\n\n0.2 (2011-12-02)\n----------------\n\n- ``SampledataView.runPlugin`` returns the result of ``Plugin.generate``. This\n makes it easy to check if the plugin was sucessfully run in unittests.\n\n0.1 (2011-01-31)\n----------------\n\n- Initial release", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/wm.sampledata", "keywords": "plone sampledata generation", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "wm.sampledata", "package_url": "https://pypi.org/project/wm.sampledata/", "platform": "", "project_url": "https://pypi.org/project/wm.sampledata/", "project_urls": { "Homepage": "https://github.com/collective/wm.sampledata" }, "release_url": "https://pypi.org/project/wm.sampledata/0.7.0/", "requires_dist": null, "requires_python": "", "summary": "UI and utility methods to generate sampledata for Plone projects", "version": "0.7.0", "yanked": false, "yanked_reason": null }, "last_serial": 10208867, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "071c13e53cf969229d01bb1eb13b7221", "sha256": "47b32d60fa338127bc80bbbe23a438215de2bc8b22482e062c6c421ce861eab7" }, "downloads": -1, "filename": "wm.sampledata-0.1-py2.6.egg", "has_sig": false, "md5_digest": "071c13e53cf969229d01bb1eb13b7221", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 18682, "upload_time": "2011-01-31T13:09:54", "upload_time_iso_8601": "2011-01-31T13:09:54.582208Z", "url": "https://files.pythonhosted.org/packages/ed/d5/e1b864e74188dae7a89821206579cb70ebae767c27e58dcb4665dc25da95/wm.sampledata-0.1-py2.6.egg", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "679831349fd038c9e481d0898af211ac", "sha256": "5f7b330a8725545312e8c1def82d65fb1011ced4ef640b14be45df20fe193088" }, "downloads": -1, "filename": "wm.sampledata-0.1.zip", "has_sig": false, "md5_digest": "679831349fd038c9e481d0898af211ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81047, "upload_time": "2011-01-31T13:17:59", "upload_time_iso_8601": "2011-01-31T13:17:59.515359Z", "url": "https://files.pythonhosted.org/packages/67/99/c6f45a8f8b2f0b7ec0709bed7f88a739f1cfc3fe261fe3a7279121c227f1/wm.sampledata-0.1.zip", "yanked": false, "yanked_reason": null } ], "0.2": [ { "comment_text": "", "digests": { "md5": "835aa7622d83e589966e7fc6cfb1dc15", "sha256": "4c8373105e148b4c91e5b60589b1375a3b20940cfcf0577e7e3c06429d8ef8a4" }, "downloads": -1, "filename": "wm.sampledata-0.2.zip", "has_sig": false, "md5_digest": "835aa7622d83e589966e7fc6cfb1dc15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81553, "upload_time": "2011-12-02T10:22:38", "upload_time_iso_8601": "2011-12-02T10:22:38.290576Z", "url": "https://files.pythonhosted.org/packages/74/06/4f13aa619c721fbc0c2765873d8ffb78744a9b5fbcf66e1d096dc81b3493/wm.sampledata-0.2.zip", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "6a3d486c9355cc6241f1a9028aa8d6cf", "sha256": "a4d825c92a966ebb4e43fee6478277b23b88b37453f0be7dd3984d8f51db439e" }, "downloads": -1, "filename": "wm.sampledata-0.2.1.zip", "has_sig": false, "md5_digest": "6a3d486c9355cc6241f1a9028aa8d6cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82312, "upload_time": "2012-05-29T16:27:55", "upload_time_iso_8601": "2012-05-29T16:27:55.286484Z", "url": "https://files.pythonhosted.org/packages/b3/5e/3c516e967cfae99783fe23ed29441ecf45b9c268703f38925e332a63aa3d/wm.sampledata-0.2.1.zip", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "a5ad3a0a2ca07da8f7984e1d0c46240a", "sha256": "a44d72fab41ce7032163992d5bfff9b54be2e35e82a2cf023dd7087be97d6755" }, "downloads": -1, "filename": "wm.sampledata-0.2.2.zip", "has_sig": false, "md5_digest": "a5ad3a0a2ca07da8f7984e1d0c46240a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85875, "upload_time": "2013-05-08T13:51:55", "upload_time_iso_8601": "2013-05-08T13:51:55.921817Z", "url": "https://files.pythonhosted.org/packages/1d/de/55449a608a96b8b8b500a45c1e829c4c66439fe30740247e4617ef5097b1/wm.sampledata-0.2.2.zip", "yanked": false, "yanked_reason": null } ], "0.3": [ { "comment_text": "", "digests": { "md5": "ca955a9b6d654bebf6974bfc66c3c1c1", "sha256": "9e14af6ea23c63029cdf927ea945e78526f275b6b9ed00d1f4037b9c664670e0" }, "downloads": -1, "filename": "wm.sampledata-0.3.tar.gz", "has_sig": false, "md5_digest": "ca955a9b6d654bebf6974bfc66c3c1c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10957, "upload_time": "2016-03-08T16:02:26", "upload_time_iso_8601": "2016-03-08T16:02:26.147441Z", "url": "https://files.pythonhosted.org/packages/c7/a6/04a3e6eedfaac7bde53f4b45fdf9aff66e0b954a81fb8a328159edbe3071/wm.sampledata-0.3.tar.gz", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c258e00e1e37274e04790d2c01482fab", "sha256": "cebc81444e243624f4f016875b93ffb8229598e51169d24bc83ee19dc5f99211" }, "downloads": -1, "filename": "wm.sampledata-0.3.zip", "has_sig": false, "md5_digest": "c258e00e1e37274e04790d2c01482fab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87916, "upload_time": "2014-08-25T13:11:22", "upload_time_iso_8601": "2014-08-25T13:11:22.952606Z", "url": "https://files.pythonhosted.org/packages/38/20/19bcaaa5278f7fc6d7678c9ee19a7f7e73c44b2fd6b7e7948cd9db23d947/wm.sampledata-0.3.zip", "yanked": false, "yanked_reason": null } ], "0.4": [ { "comment_text": "", "digests": { "md5": "00c2850a6de6c828d9b787d74b214a85", "sha256": "a1e34c691b406b4ad4f7f8e0a40dab9b872ecf0dae13fe2880ce8ac1236291ae" }, "downloads": -1, "filename": "wm.sampledata-0.4.zip", "has_sig": false, "md5_digest": "00c2850a6de6c828d9b787d74b214a85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89698, "upload_time": "2016-03-08T16:24:05", "upload_time_iso_8601": "2016-03-08T16:24:05.446158Z", "url": "https://files.pythonhosted.org/packages/9f/28/12c834703c53f3b1cca2edc2ea13d9ec10ef7d737a5d0041dd6d7cceb667/wm.sampledata-0.4.zip", "yanked": false, "yanked_reason": null } ], "0.5": [ { "comment_text": "", "digests": { "md5": "cc652c479c8e4b011f4da9bc4c6b6ceb", "sha256": "74a84d43bbfa3b1b25b580cd6a3e3e505ccb146dc702180400d6d177a63cccd0" }, "downloads": -1, "filename": "wm.sampledata-0.5.tar.gz", "has_sig": false, "md5_digest": "cc652c479c8e4b011f4da9bc4c6b6ceb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78851, "upload_time": "2016-03-30T22:28:25", "upload_time_iso_8601": "2016-03-30T22:28:25.398061Z", "url": "https://files.pythonhosted.org/packages/6c/43/9e6f9ffdde30f668c1fd444985caf5f10226a7ca0b4ab049297478f10f7c/wm.sampledata-0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "ec81c17727e9f9b0120b7ddbe399a98f", "sha256": "101bb81e32281a588ea1ca2e86aebe7c3d7611814c6a2c3da6d4a268a2d733cc" }, "downloads": -1, "filename": "wm.sampledata-0.5.1.tar.gz", "has_sig": false, "md5_digest": "ec81c17727e9f9b0120b7ddbe399a98f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79023, "upload_time": "2016-05-03T08:48:58", "upload_time_iso_8601": "2016-05-03T08:48:58.633286Z", "url": "https://files.pythonhosted.org/packages/95/6d/5fa775c94908999f44cf45cb32d95b5788fead5f93d689de718bb7cda22f/wm.sampledata-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "9086580de43e91504ba7359d0fe14d2c", "sha256": "ac94f8546534c3eeb7f26df79d86b860de8a4690015126794057a41f72fcd0a9" }, "downloads": -1, "filename": "wm.sampledata-0.5.2.tar.gz", "has_sig": false, "md5_digest": "9086580de43e91504ba7359d0fe14d2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80025, "upload_time": "2016-06-14T11:40:22", "upload_time_iso_8601": "2016-06-14T11:40:22.756216Z", "url": "https://files.pythonhosted.org/packages/e7/24/12862c18d6214c4955093e0e50830e0294b5a46e27fcc403306a8e20d8ef/wm.sampledata-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "8c92fdc1548b621dd4d9c2d9badf4120", "sha256": "9ad57d7a339aba8a2fbe97e85dc69ee783df53ec5d4a87434f915b8d9960f313" }, "downloads": -1, "filename": "wm.sampledata-0.6.1.tar.gz", "has_sig": false, "md5_digest": "8c92fdc1548b621dd4d9c2d9badf4120", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86227, "upload_time": "2019-10-29T10:02:15", "upload_time_iso_8601": "2019-10-29T10:02:15.507121Z", "url": "https://files.pythonhosted.org/packages/81/aa/2b02535f6d23c2f0ded8ce3495adcc89a75ca8da38a43f34732bcb29e89d/wm.sampledata-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "47e097931f556fb5825c6965e045542a", "sha256": "190b614178f9471342cda7eb32baf834a76a83ca5991d321406900b66f5a65ae" }, "downloads": -1, "filename": "wm.sampledata-0.7.0.tar.gz", "has_sig": false, "md5_digest": "47e097931f556fb5825c6965e045542a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86715, "upload_time": "2021-04-29T14:59:58", "upload_time_iso_8601": "2021-04-29T14:59:58.276840Z", "url": "https://files.pythonhosted.org/packages/8f/75/5bc6d71da2979d5cd8f598ce2e8af317d75d71aa8c23f5c80d29e60d639f/wm.sampledata-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "47e097931f556fb5825c6965e045542a", "sha256": "190b614178f9471342cda7eb32baf834a76a83ca5991d321406900b66f5a65ae" }, "downloads": -1, "filename": "wm.sampledata-0.7.0.tar.gz", "has_sig": false, "md5_digest": "47e097931f556fb5825c6965e045542a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86715, "upload_time": "2021-04-29T14:59:58", "upload_time_iso_8601": "2021-04-29T14:59:58.276840Z", "url": "https://files.pythonhosted.org/packages/8f/75/5bc6d71da2979d5cd8f598ce2e8af317d75d71aa8c23f5c80d29e60d639f/wm.sampledata-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }