{"id":25650754,"url":"https://github.com/sgerodes/scrapy-dot-items","last_synced_at":"2026-06-15T04:31:36.205Z","repository":{"id":48850743,"uuid":"517057576","full_name":"sgerodes/scrapy-dot-items","owner":"sgerodes","description":null,"archived":false,"fork":false,"pushed_at":"2022-07-26T08:27:29.000Z","size":51,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-01T15:43:08.962Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sgerodes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-23T12:54:59.000Z","updated_at":"2022-08-16T10:19:32.000Z","dependencies_parsed_at":"2022-09-26T21:31:25.800Z","dependency_job_id":null,"html_url":"https://github.com/sgerodes/scrapy-dot-items","commit_stats":null,"previous_names":["sgerodes/scrapy-items"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/sgerodes/scrapy-dot-items","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgerodes%2Fscrapy-dot-items","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgerodes%2Fscrapy-dot-items/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgerodes%2Fscrapy-dot-items/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgerodes%2Fscrapy-dot-items/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sgerodes","download_url":"https://codeload.github.com/sgerodes/scrapy-dot-items/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgerodes%2Fscrapy-dot-items/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34348291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-23T15:18:32.425Z","updated_at":"2026-06-15T04:31:36.189Z","avatar_url":"https://github.com/sgerodes.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Title\n\n## Description\n\nFor those who are tired to use scrapy's brackets and quotes. \nIn one line of code this library will increase the readability of your code, make it more stable to human error.\nAnd will introduce IDEs code completion features to your scrapy items. \nYou will be able to use scrapy items as normal python objects using dot syntax.\n\nThe regular bulky way to do it:\n\n    regular_scrapy_item['some_field'] = 42\n    print(regular_scrapy_item.get('some_field'))\n\nThe simple dot-items way:\n\n    scrapy_dot_item.some_field = 42\n    print(scrapy_dot_item.some_field)\n\n## Installation\n\n    pip install scrapy-dot-items\n\n## Usage\n\n### Apply to a single scrapy item class\n\nYou can add functionality with the dot_item decorator to a single class\n    \n    from scrapy_dot_items import dot_item\n\n    @dot_item\n    class RealEstateItem(scrapy.Item):\n        price = scrapy.Field()\n\n    dot_scrapy_item = RealEstateItem()\n\n    dot_scrapy_item.price = 1000\n    print(dot_scrapy_item.price)  # prints 1000\n\n### Apply to all scrapy items \n\nYou can apply this functionality globally\n\n\n    from scrapy_dot_items import dot_items_globally\n\n    dot_items_globally()  # now every scrapy.Item class will have this functionality\n\n    class RealEstateItem(scrapy.Item):\n        price = scrapy.Field()\n\n    dot_scrapy_item = RealEstateItem()\n\n    dot_scrapy_item.price = 1000\n    print(dot_scrapy_item.price)  # prints 1000\n\n## Backwards compatibility\n\nscrapy-dot-items are backwards compatible. You can install it into your old project and mix regular and dot style. \n    \n    dot_scrapy_item['price'] = 2000  # you can still set and get the items the regular way too\n    print(dot_scrapy_item.get('price'))  # prints 2000\n    print(dot_scrapy_item.price)  # prints 2000\n\n\n## For contributers\n\nThis project uses pipenv instead of pip. Setup:\n- intall pipenv with 'pip install pipenv'\n- create a virtual environment using pipenv with 'pipenv shell' in the root directory\n- install the dependencies with 'pipenv install'\n\nAttention:\nPlease install all packages with 'pipenv install \u003cpackage_name\u003e'. Do NOT use 'pip install ...'.\nThe same for unistalling 'pipenv uninstall \u003cpackage_name\u003e'","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgerodes%2Fscrapy-dot-items","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsgerodes%2Fscrapy-dot-items","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgerodes%2Fscrapy-dot-items/lists"}