{ "info": { "author": "Aviser LLP, Singapore", "author_email": "formic@aviser.asia", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries" ], "description": "Formic: Apache Ant FileSet and Globs in Python\n==============================================\n\nFeatures\n--------\n\nFormic is a Python implementation of Apache Ant `FileSet and Globs\n`_ including the directory\nwildcard `**`.\n\nFileSet provides a terse way of specifying a set of files without having to\nenumerate individual files. It:\n\n1. **Includes** files from one or more Ant Globs, then\n2. Optionally **excludes** files matching further Ant Globs.\n\nAnt Globs are a superset of ordinary file system globs. The key differences:\n\n* They match whole paths, eg ``/root/myapp/*.py``\n* \\*\\* matches *any* directory or *directories*, eg ``/root/**/*.py`` matches\n ``/root/one/two/my.py``\n* You can match the topmost directory or directories, eg ``/root/**``, or\n* The parent directory of the file, eg ``**/parent/*.py``, or\n* Any parent directory, eg ``**/test/**/*.py``\n\nThis approach is the de-facto standard in several other languages and tools,\nincluding Apache Ant and Maven, Ruby (Dir) and Perforce (...).\n\nPython has built-in support for simple globs in `fnmatcher\n`_ and `glob\n`_, but Formic:\n\n* Can recursively scan subdirectories\n* Matches arbitrary directories *in* the path (eg ``/1/**/2/**/3/**/*.py``).\n* Has a high level interface:\n\n * Specify one or more globs to find files\n * Globs can be used to exclude files\n * Ant, and Formic, has a set of *default excludes*. These are files and\n directories that, by default, are automatically excluded from all searches.\n The majority of these are files and directories related to VCS (eg .svn\n directories). Formic adds ``__pycache__``.\n * Iterate through all matches in the sub-tree\n\n* Is more efficient with many common patterns; it runs relatively faster on\n large directory trees with large numbers of files.\n\nQuickstart\n----------\n\nFormic can be installed from the Cheeseshop with easy_install or pip::\n\n $ easy_install formic\n\nOnce installed, you can use Formic either from the command line::\n\n $ formic -i \"*.py\" -e \"__init__.py\" \"**/*test*/\" \"test_*\"\n\nThis will search for files all Python files under the current directory\nexcluding all `__init__.py` files, any file in directories whose name contains\nthe word 'test', and any files that start `test_`.\n\nOr integrated right into your Python 2.7 project::\n\n import formic\n fileset = formic.FileSet(include=\"**.py\",\n exclude=[\"**/*test*/**\", \"test_*\"]\n )\n\n for file_name in fileset:\n # Do something with file_name\n ...\n\nThat's about it :)\n\nAbout\n-----\n\nFormic is written and maintained by `Andrew Alcock `_\nof `Aviser LLP `_, Singapore.\n\n* `Home page `_\n* `Issue tracker `_\n* `Source `_ on Atlassian BitBucket\n* `Email maintainer `_\n\nFormic is Copyright (C) 2012, Aviser LLP and released under\n`GPLv3 `_. Aviser LLP would be happy to\ndiscuss other licensing arrangements; for details, please email the maintainer.", "description_content_type": null, "docs_url": "https://pythonhosted.org/formic/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.aviser.asia/formic", "keywords": "Apache Ant,glob,recurse,FileSet,file utilities,find", "license": "GPLv3+", "maintainer": null, "maintainer_email": null, "name": "formic", "package_url": "https://pypi.org/project/formic/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/formic/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.aviser.asia/formic" }, "release_url": "https://pypi.org/project/formic/0.9beta8/", "requires_dist": null, "requires_python": null, "summary": "An implementation of Apache Ant FileSet and Globs", "version": "0.9beta8" }, "last_serial": 815075, "releases": { "0.9beta": [ { "comment_text": "", "digests": { "md5": "adf4b5491ddae917fa24cc7f4620950e", "sha256": "aa3f953ffdf28d0338dfcc59c555428da340a012021464d95e9c13db555f6255" }, "downloads": -1, "filename": "formic-0.9beta2-py2.7.egg", "has_sig": false, "md5_digest": "adf4b5491ddae917fa24cc7f4620950e", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 76646, "upload_time": "2012-05-15T08:05:48", "url": "https://files.pythonhosted.org/packages/46/2b/f7cbb86f160ed838e27676e94e2c30d7226ffba4c8de777d2443b9ec29c9/formic-0.9beta2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "8f50a767930f223810bc5e8337a7e747", "sha256": "cabc026e12811e83e157be3abad8da84a1a7e9f3c7e51787803b98b442c86a17" }, "downloads": -1, "filename": "formic-0.9beta2.tar.gz", "has_sig": false, "md5_digest": "8f50a767930f223810bc5e8337a7e747", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38595, "upload_time": "2012-05-15T08:06:12", "url": "https://files.pythonhosted.org/packages/c1/ab/2ab772d2b262ecddad5f57949b4423ef0e7e34ad4552cc29355b8fb2b9f1/formic-0.9beta2.tar.gz" }, { "comment_text": "", "digests": { "md5": "7cdf5b35a07197ed6c3e51be85aef181", "sha256": "7277e95d1198e4111346179579ef7a4bbf809661da3f8296e853133301b68e36" }, "downloads": -1, "filename": "formic-0.9beta-py2.7.egg", "has_sig": false, "md5_digest": "7cdf5b35a07197ed6c3e51be85aef181", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 75770, "upload_time": "2012-05-14T11:40:43", "url": "https://files.pythonhosted.org/packages/1b/00/83ad6efa6ebab229510802396eea874848641c11e063849144890fac6561/formic-0.9beta-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "76c92cec91a163ab5e7eb4e92829991f", "sha256": "6aae1191cc199c0d5ecda54fcd80551e19a4eda465443ec9b5fbb6cfa4767b39" }, "downloads": -1, "filename": "formic-0.9beta.tar.gz", "has_sig": false, "md5_digest": "76c92cec91a163ab5e7eb4e92829991f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42856, "upload_time": "2012-05-15T04:52:00", "url": "https://files.pythonhosted.org/packages/2c/29/78dc47acc9e2fe96909c8e3561295ecc949f878166cc317e6c8c94c5eef2/formic-0.9beta.tar.gz" } ], "0.9beta2": [], "0.9beta3": [ { "comment_text": "", "digests": { "md5": "468d1e203034965912aa27897a6af082", "sha256": "319e8451699a07cce189082251f8f996990f9babf93e939969076071a57acb48" }, "downloads": -1, "filename": "formic-0.9beta3-py2.7.egg", "has_sig": false, "md5_digest": "468d1e203034965912aa27897a6af082", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 79352, "upload_time": "2012-05-23T07:21:59", "url": "https://files.pythonhosted.org/packages/6a/89/f664afebf50e3b2250fbcca67bdc6df94f2472b4c76f823763b369f8232e/formic-0.9beta3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "ee500f969154e549cc5292a244b5f7b9", "sha256": "203a112a2f7ceb9a536af55427538c258b24b4e422eabba876c838a6dc33aaf0" }, "downloads": -1, "filename": "formic-0.9beta3.tar.gz", "has_sig": false, "md5_digest": "ee500f969154e549cc5292a244b5f7b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39652, "upload_time": "2012-05-23T07:21:54", "url": "https://files.pythonhosted.org/packages/e3/69/b087e7b3cc16a7b3be79e56c827c409864228bda9356983f50ee74a3a67e/formic-0.9beta3.tar.gz" } ], "0.9beta4": [ { "comment_text": "", "digests": { "md5": "257906ea97818122ddc3b5d1bd409c96", "sha256": "3c3899fa325f3a829681b36277c4b1f2fa9f3601f0fe3e9b7255b917767c29c3" }, "downloads": -1, "filename": "formic-0.9beta4-py2.7.egg", "has_sig": false, "md5_digest": "257906ea97818122ddc3b5d1bd409c96", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 80611, "upload_time": "2012-07-27T04:54:10", "url": "https://files.pythonhosted.org/packages/49/3d/45031ad29133449a00cdba3a1fd575191edb9be24553b928767ea7cfde2d/formic-0.9beta4-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "44085073ec46e8e80383c57d9be9b59d", "sha256": "b7553737e4c48a62b6e37dec2a560141a37b1eae972ec34a8b7e009c61a2d3ba" }, "downloads": -1, "filename": "formic-0.9beta4.tar.gz", "has_sig": false, "md5_digest": "44085073ec46e8e80383c57d9be9b59d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40193, "upload_time": "2012-07-27T04:54:19", "url": "https://files.pythonhosted.org/packages/90/49/b6befbf8f49f2e73203e2e19ac4f58c97386e562181b2af890ab04701cd9/formic-0.9beta4.tar.gz" } ], "0.9beta5": [ { "comment_text": "", "digests": { "md5": "977980a224e856e11033f56a08998421", "sha256": "ecc20babcc25cf3ccf81ddb0d9afcbca551b6f0640b6fe960c269e2ef7a3a287" }, "downloads": -1, "filename": "formic-0.9beta5-py2.7.egg", "has_sig": false, "md5_digest": "977980a224e856e11033f56a08998421", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 61836, "upload_time": "2012-08-15T09:04:17", "url": "https://files.pythonhosted.org/packages/f8/b6/6b84516ce521a92a5f0e32adb8d9130d38e05067b1de01f3943ea15c1779/formic-0.9beta5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "4227cbe91f1c338db2b6a7897c0c964e", "sha256": "d67a8a8e1ffe701835dd2cecf5f3d17e0e5f5d08c10d3988466c5afb04e61072" }, "downloads": -1, "filename": "formic-0.9beta5.tar.gz", "has_sig": false, "md5_digest": "4227cbe91f1c338db2b6a7897c0c964e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41521, "upload_time": "2012-08-15T09:04:19", "url": "https://files.pythonhosted.org/packages/61/dd/47092827e15cf6eee61ac0bc3a0bf23ed68a62a3f4a37cec6b27fdb01444/formic-0.9beta5.tar.gz" } ], "0.9beta6": [ { "comment_text": "", "digests": { "md5": "73aa960955b6a694320a4d36cbf6c06c", "sha256": "08637c79fe67ce1543d7be9553dd8ca6b6d696563a338aaab7cfdfbbdb751870" }, "downloads": -1, "filename": "formic-0.9beta6-py2.7.egg", "has_sig": false, "md5_digest": "73aa960955b6a694320a4d36cbf6c06c", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 84310, "upload_time": "2012-10-16T08:31:36", "url": "https://files.pythonhosted.org/packages/3c/de/76ecf18e7e92cadc54706c1729e04dcd819d621a45d6c50b0736180162f8/formic-0.9beta6-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "5ad3fb5da65060e932a86f66f3400c6b", "sha256": "cbb63e817374c87690605711f4ec8ecc82cd1e568fa70a6abb31ae5437d31e77" }, "downloads": -1, "filename": "formic-0.9beta6.tar.gz", "has_sig": false, "md5_digest": "5ad3fb5da65060e932a86f66f3400c6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41936, "upload_time": "2012-10-16T08:31:39", "url": "https://files.pythonhosted.org/packages/59/54/aac23cbb1ebac3fcd9a2623b0fe5c5a0d6658c185531c3f7c31e4b32a51f/formic-0.9beta6.tar.gz" } ], "0.9beta7": [ { "comment_text": "", "digests": { "md5": "46327d885c3fb614f4a1f05c398780d2", "sha256": "5c0ab8c9b51b737217eadcee1649d73e9a541b9952d37a5aac3dd741e98e08d4" }, "downloads": -1, "filename": "formic-0.9beta7-py2.7.egg", "has_sig": false, "md5_digest": "46327d885c3fb614f4a1f05c398780d2", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 87479, "upload_time": "2013-03-27T09:24:23", "url": "https://files.pythonhosted.org/packages/86/22/75d8eaacb5c1259b14c35e97712d7421914896b8699e2085d7c4be441472/formic-0.9beta7-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "9c8ad50d7025be360042163db93def02", "sha256": "7d731b47d8d8c49bb7ad6441dee64175f153614862ffd7bf05cdff98728bcfd4" }, "downloads": -1, "filename": "formic-0.9beta7.tar.gz", "has_sig": false, "md5_digest": "9c8ad50d7025be360042163db93def02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43535, "upload_time": "2013-03-27T09:24:28", "url": "https://files.pythonhosted.org/packages/6f/4f/eb2e07581832fcf866ed81b6b8a9024a8260ec74dca8444c7f4ab395f8da/formic-0.9beta7.tar.gz" } ], "0.9beta8": [ { "comment_text": "", "digests": { "md5": "ccf349b6d06a8daa552cb127fcd35954", "sha256": "0b00adbd1924263a458c877236957eb818c113637f6c256a95801dc14dbf135b" }, "downloads": -1, "filename": "formic-0.9beta8-py2.7.egg", "has_sig": false, "md5_digest": "ccf349b6d06a8daa552cb127fcd35954", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 69776, "upload_time": "2013-07-14T13:27:28", "url": "https://files.pythonhosted.org/packages/a7/6c/5f37d84d117722d5bf87c531a8436fb39cfa52cea1bda3ce24a44cf797df/formic-0.9beta8-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "90e10af96b60cf511fb1f8ab0c3e488f", "sha256": "d246d2f254579cad1d723076d4072079e2191e2e6da6a64617ea7f2107f340ec" }, "downloads": -1, "filename": "formic-0.9beta8.tar.gz", "has_sig": false, "md5_digest": "90e10af96b60cf511fb1f8ab0c3e488f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45465, "upload_time": "2013-07-14T13:27:41", "url": "https://files.pythonhosted.org/packages/6d/2a/69ad53513dd33c6c71b96a7fa80cd9e4441b903d8d22b169d6f7be9e58e6/formic-0.9beta8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ccf349b6d06a8daa552cb127fcd35954", "sha256": "0b00adbd1924263a458c877236957eb818c113637f6c256a95801dc14dbf135b" }, "downloads": -1, "filename": "formic-0.9beta8-py2.7.egg", "has_sig": false, "md5_digest": "ccf349b6d06a8daa552cb127fcd35954", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 69776, "upload_time": "2013-07-14T13:27:28", "url": "https://files.pythonhosted.org/packages/a7/6c/5f37d84d117722d5bf87c531a8436fb39cfa52cea1bda3ce24a44cf797df/formic-0.9beta8-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "90e10af96b60cf511fb1f8ab0c3e488f", "sha256": "d246d2f254579cad1d723076d4072079e2191e2e6da6a64617ea7f2107f340ec" }, "downloads": -1, "filename": "formic-0.9beta8.tar.gz", "has_sig": false, "md5_digest": "90e10af96b60cf511fb1f8ab0c3e488f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45465, "upload_time": "2013-07-14T13:27:41", "url": "https://files.pythonhosted.org/packages/6d/2a/69ad53513dd33c6c71b96a7fa80cd9e4441b903d8d22b169d6f7be9e58e6/formic-0.9beta8.tar.gz" } ] }