{ "info": { "author": "Antriksh Yadav", "author_email": "antrikshy@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Database" ], "description": "Rackfocus\n=========\n\nRackfocus (or rackfocus) is a CLI tool to compile IMDb datasets into a convenient SQLite database for easy consumption.\n\nIMDb provides open access to an assortment of their data for non-commercial use. This data is packaged in TSV files that are available to download without any authentication. See their `Datasets page `_ for more information.\n\nIt might be super nifty for data visualization projects and other similar use cases, but it's hard to \"peek\" into the data, as it often involves joins. For instance, cast, crew and titles are referred to by unique IDs, and looking up their names requires joining datasets with other datasets. Rackfocus makes it easy to surf through the data (assuming you speak SQL) by compiling it all into a compact SQLite file.\n\n**Disclaimer:** Rackfocus is not owned or maintained by IMDb or Amazon.\n\nUsage\n-----\n\nRequirements\n~~~~~~~~~~~~\n\nAll that's required to run Rackfocus is Python 3 (I'm pretty certain as low as 3.4 should work, possibly lower). It does not depend on any third-party packages.\n\nInstalling + Running\n~~~~~~~~~~~~~~~~~~~~\n\nYou can find Rackfocus on PyPI using pip::\n\n pip install rackfocus\n\nThat should get you set up with a `rackfocus` command that can be invoked from anywhere like so::\n\n rackfocus ./path/to/working/dir ./path/to/output/dir\n\nRackfocus will use the working directory (first argument) to place datasets temporarily. Working data will be contained in a new directory that Rackfocus creates, which will be destroyed after the compilation is complete.\n\nRackfocus's output is a neat little SQLite database in a file named `rackfocus_out.db`, which is placed under the path specified as the second argument.\n\nTo surf through the database generated by Rackfocus, open it using an SQLite command line utility like so::\n\n sqlite3 rackfocus_out.db\n\nAt the SQLite prompt, view all tables using::\n\n .tables\n\nView schema for a table using::\n\n .schema title_akas\n\nTip - Schedule It!\n~~~~~~~~~~~~~~~~~~\n\nDuring its development, Rackfocus was intended to be scheduled. Say you enjoy data visualization and always want the latest IMDb data ready to dip into. Simply set up the job to run periodically on any computer, perhaps a Raspberry Pi. Use cron or another scheduling mechanism to update data daily or weekly!\n\nThe database file that gets generated as output has a reliable, unchanging file name. That way, it gets overwritten when scheduled, without requiring any cleanup.\n\nData Model\n----------\n\nThe output SQLite database file includes tables that more or less mirror the TSV files that IMDb provides, with a few quality-of-life joining and browsing enhancements. These enhancements are mainly some extra unpacking of rows into multiple rows.\n\nMuch of the data model described on `IMDb's datasets page `_ applies. Any overrides to this can be deduced from the `rackfocus/models.py` file in this repo.\n\nThere are two key facts about the datasets to get you started:\n\n1. `tconst` values represent unique titles. Entities like movies, shorts, video games, TV series, and even individual TV episodes share this namespace.\n2. `nconst` values represent unique people.\n\nThese values also happen to appear in URLs for people and titles on IMDb. For example, Nicolas Cage is `nm0000115 `_.\n\nExamples\n~~~~~~~~\n\nGet all feature films starring Evangeline Lilly with an IMDb rating of 7.0 or higher::\n\n select\n distinct primaryTitle\n from\n name_basics\n join title_principals on name_basics.nconst=title_principals.nconst\n join title_basics on title_basics.tconst=title_principals.tconst\n join title_ratings on title_basics.tconst=title_ratings.tconst\n where\n primaryName='Evangeline Lilly'\n and titleType='movie'\n and category='actress'\n and averageRating > 7.0;\n\nGet all feature films directed by Michael Bay::\n\n select\n distinct primaryTitle\n from\n title_basics\n join title_crew on title_basics.tconst=title_crew.tconst\n join name_basics on title_crew.nconst=name_basics.nconst\n where\n primaryName='Michael Bay'\n and job='director'\n and titleType='movie';\n\nGet all comedy feature films with an IMDb rating between 4.0 and 6.0::\n\n select\n distinct primaryTitle\n from\n title_basics\n join title_ratings on title_basics.tconst=title_ratings.tconst\n where\n averageRating > 4.0\n and averageRating < 6.0\n and titleType='movie';\n\nContributing\n------------\n\nImprovements are very welcome, and contributing them is easy! Rackfocus is a very straightforward application, with zero package dependencies outside of Python itself. Simply fork and/or clone this repo and you should be good to go.\n\nFrom the top-level directory of this repo, run::\n\n pip install -e .\n\nThat should install your local version of Rackfocus in your environment. Run the same command after making each change and it should refresh the local install to reflect changes.\n\nTo restore your system to the original state, run::\n\n pip uninstall rackfocus\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Antrikshy/Rackfocus", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "rackfocus", "package_url": "https://pypi.org/project/rackfocus/", "platform": "", "project_url": "https://pypi.org/project/rackfocus/", "project_urls": { "Homepage": "https://github.com/Antrikshy/Rackfocus" }, "release_url": "https://pypi.org/project/rackfocus/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "CLI utility to download and compile IMDb datasets into an SQLite database.", "version": "1.1.0" }, "last_serial": 4373096, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "28cb298ceefd1cb1f24cc75de4c89597", "sha256": "8a5c56a3643c5d5c7fbcc4539e29c414ddedc4c6edac748a669ce89be53896da" }, "downloads": -1, "filename": "rackfocus-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "28cb298ceefd1cb1f24cc75de4c89597", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8549, "upload_time": "2018-10-08T03:35:50", "url": "https://files.pythonhosted.org/packages/ac/64/2e7d450e416bea5a214505d9830fe4ad2c72304ac6a1fcb4df527e87fed6/rackfocus-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "229fa44ec087b18ca192598024c59f8e", "sha256": "c17ef6468ceafb7f2a7340fd85f2ab74f55131964ddf67d378b7b2ca5c684a68" }, "downloads": -1, "filename": "rackfocus-1.0.0.tar.gz", "has_sig": false, "md5_digest": "229fa44ec087b18ca192598024c59f8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6469, "upload_time": "2018-10-08T03:35:52", "url": "https://files.pythonhosted.org/packages/8b/1d/5bc5d0b33d40cc3101680f22e63403f90a439c651cf6a7072e83e3f1d683/rackfocus-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "9a737caace4098938db44b8f69818bff", "sha256": "dc15b700ff434f5d4dcf3b85e3945a098fb519b9d924b11ffc02ed0dbf6f1b03" }, "downloads": -1, "filename": "rackfocus-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9a737caace4098938db44b8f69818bff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8925, "upload_time": "2018-10-14T00:11:37", "url": "https://files.pythonhosted.org/packages/41/23/c52aa051947ce76592081cc24cc79e5296d1aed0378b3a41ef0b4abfa01a/rackfocus-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b42563e5561c39b8f04d25adcca35678", "sha256": "57231234cfe6ef3637c87212a9cdf0c2292601e19d2864e8b2a6cd7cdc6efdd2" }, "downloads": -1, "filename": "rackfocus-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b42563e5561c39b8f04d25adcca35678", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6962, "upload_time": "2018-10-14T00:11:39", "url": "https://files.pythonhosted.org/packages/6b/43/4ac57053a51c30f5a6438f6b30d4a7814a9e68b4a12f0b3a0d7795fe8c7b/rackfocus-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9a737caace4098938db44b8f69818bff", "sha256": "dc15b700ff434f5d4dcf3b85e3945a098fb519b9d924b11ffc02ed0dbf6f1b03" }, "downloads": -1, "filename": "rackfocus-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9a737caace4098938db44b8f69818bff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8925, "upload_time": "2018-10-14T00:11:37", "url": "https://files.pythonhosted.org/packages/41/23/c52aa051947ce76592081cc24cc79e5296d1aed0378b3a41ef0b4abfa01a/rackfocus-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b42563e5561c39b8f04d25adcca35678", "sha256": "57231234cfe6ef3637c87212a9cdf0c2292601e19d2864e8b2a6cd7cdc6efdd2" }, "downloads": -1, "filename": "rackfocus-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b42563e5561c39b8f04d25adcca35678", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6962, "upload_time": "2018-10-14T00:11:39", "url": "https://files.pythonhosted.org/packages/6b/43/4ac57053a51c30f5a6438f6b30d4a7814a9e68b4a12f0b3a0d7795fe8c7b/rackfocus-1.1.0.tar.gz" } ] }