{ "info": { "author": "Thibault Estier", "author_email": "thibault.estier@unil.ch", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Database :: Database Engines/Servers" ], "description": "## F2 DBMS in Python\n\n### version 1.5.0 - Th. Estier - 2017. \n\nF2 is an object-oriented Database Management System (DBMS) specially built to support\nschema evolution. Its main purpose is to support persistent data for which the initial\nschema is very prone to changes. Its underlying design choices are based on reflexivity\n(no separation between meta-levels and objects, no DDL) and transposed storage, also \ncalled _column oriented_ (F2 tables are external views).\n\n### Obtaining F2\n\nIf you can read this file, you probably already managed to obtain the distribution file,\nor alternatively you obtained the sources from the git repository. If you downloaded an \nF2 distribution file, then you will have to\nunfold it in some appropriate folder of yours, by a command similar to:\n\n $ tar zxvf F2-1.4.1.tar.gz\n \n### Installing F2:\n\nThe first step is to fine tune your local python installation.\nFirst install ZODB and ZEO with the following command:\n\n $ easy_install ZODB3\n \n> If the **easy_install** command doesn't work for you, you have to extend your python\ninstallation with the python [setuptools](https://pypi.python.org/pypi/setuptools). \n\nNow type the following command:\n\n $ python setup.py install\n \n### Testing your install:\n\nType the following command:\n \n $ python -c 'import F2'\n \nIf this command returns without any effect or message, then your installation is\na success. If it displays any form of error message including _ImportError_ then\nsomething failed during the preceding steps.\n \n### Testing F2 without server (DB in a simple file):\n\nType the following command:\n \n $ python bootf2.py file:root.db\n \nYou should normally see a succession of lines commenting the ongoing bootstrap of\na F2 kernel. The resulting database will be in the current directory under name 'root.db'.\n \n### Testing F2 with a client/server configuration:\n \n1. verify that port 8080 is not already used on your machine, this is the port\n on which your F2 server will listen to clients. If this is the case, replace '8080'\n by some other appropriate port number in the file 'start_f2_server' (this is a\n simple text file that you can edit by any standard editor). \n \n2. create a local subdirectory called 'var' in the current directory. The\n server will store data files, logs and other control files in it.\n \n3. launch your server with the following command:\n\n $ ./start_f2_server\n \n4. bootstrap the server database with the following command:\n \n $ python bootf2.py rpc:127.0.0.1:8080\n \nYou will of course replace '8080' by the port number you choosed in point 1.\nif you changed it. The **127.0.0.1** address is the standard IP address designing\nyour own machine. A client program running on another machine would use instead\nthe IP adress you have indicated to join your machine. This supposes you opened\nthe port 8080 to other machines. If this is the case, BEWARE because anyone can\nuse your F2 database while your server is running. When in doubt, ask your local\nnetwork administrator.\n \n5. To stop your F2 server use:\n \n $ ./stop_f2_server\n \n### Continuing with your F2 DBMS in python:\n \nFrom now on, if you want you can read the documentation (in directory ./doc) to \ncontinue your discovery of F2. Fasten seat belts.\n \n \nCheers, \nTh. Estier - december 2016\n \n--------------------------------------------------------------\n### RELEASE NOTES:\n##### 1.5 big change: adaptation to python 3.\n* tested with python 3.5,\n* should be still backward compatible with python 2. \n\n##### 1.4 introduced possibility to prefix a class by the name of its database:\n* f2.Person is OK if you have only one such class in your namespace,\n* f2.HumanRessource.Person is required if you want if you have 2\n classes named \"Person\" in two different databases.\n* fixed bootstrap process for class Database()\n \n##### 1.3 distribution includes now:\n* new documentation written in TeX has new schema of Kernel,\n* includes f2_rest.py : a small web publisher of a F2 content.\n \n##### 1.1 essentially introduces since version 1.0:\n* OID's are now unique to a full F2 database, and never reused. OID's creation\n uniqueness is garanteed even in client/server context (using ZEO), it is\n both thread safe and transaction compatible: even if a transaction is\n rollbacked, created OID's are never recycled.\n This has strong implications (simplifications) on restructuration mechanisms.\n \n* some convenient new methods in base python classes,\n \n* bootstrap process is now integrated in the F2 package (instead of a\n separated program), this simplifies usage of F2 from inside\n application servers (like Radixa or Zope): a program creating a\n new F2 database can launch the bootstrap process \"a la vol\u00e9e\",\n \n* some bugs corrected,\n \n* documentation grew up significantly.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.python.org/pypi/F2python/", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "F2python", "package_url": "https://pypi.org/project/F2python/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/F2python/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://pypi.python.org/pypi/F2python/" }, "release_url": "https://pypi.org/project/F2python/1.5.0/", "requires_dist": null, "requires_python": null, "summary": "The F2 DBMS written in Python. Needs ZODB and ZEO to run.", "version": "1.5.0" }, "last_serial": 2767507, "releases": { "1.3.1": [ { "comment_text": "", "digests": { "md5": "ec7d387154cc482681ae87aa67fc6d08", "sha256": "7dc7f6b99f79e1a550cd959a4558779c8320b7d8a6baad62f490e8dca0b707ad" }, "downloads": -1, "filename": "F2python-1.3.1.tar.gz", "has_sig": false, "md5_digest": "ec7d387154cc482681ae87aa67fc6d08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 244895, "upload_time": "2014-08-28T16:46:09", "url": "https://files.pythonhosted.org/packages/9b/8c/d367b6de14ff468b71540f276bef426dda97b1641017ed4903970bc80721/F2python-1.3.1.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "fa6187b870e76b860b015d9494186f00", "sha256": "3e698bb86440879aaa06158357c9a62d632cfb004b31ea4e7ea1a7eeb0526658" }, "downloads": -1, "filename": "F2python-1.5.0.tar.gz", "has_sig": false, "md5_digest": "fa6187b870e76b860b015d9494186f00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 801265, "upload_time": "2017-04-10T19:55:03", "url": "https://files.pythonhosted.org/packages/7c/50/f40c458bf97c3a60b72cd9495a2475500b51158ebb6b3f0f59368596c70a/F2python-1.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fa6187b870e76b860b015d9494186f00", "sha256": "3e698bb86440879aaa06158357c9a62d632cfb004b31ea4e7ea1a7eeb0526658" }, "downloads": -1, "filename": "F2python-1.5.0.tar.gz", "has_sig": false, "md5_digest": "fa6187b870e76b860b015d9494186f00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 801265, "upload_time": "2017-04-10T19:55:03", "url": "https://files.pythonhosted.org/packages/7c/50/f40c458bf97c3a60b72cd9495a2475500b51158ebb6b3f0f59368596c70a/F2python-1.5.0.tar.gz" } ] }