{ "info": { "author": "Tuan Truong", "author_email": "tuan188@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# igen - A code generator for iOS app\n\n## Installation:\n### Install using pip:\nOpen Terminal and run:\n\n```\n$ pip3 install igen\n```\n\n### Update:\n\n```\n$ pip3 install -U igen\n```\n\nor\n\n```\n$ pip3 uninstall igen\n$ pip3 install igen --no-cache-dir\n```\n\n### Uninstall:\n\n```\n$ pip3 uninstall igen\n```\n\n## How to install pip3:\npip3 is already installed if you are using Python 3 (>=3.4)\n\nIn order to install Python 3, you need to install Homebrew, run the following command in Terminal:\n\n```\n$ /usr/bin/ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n```\n\nThen install Python 3:\n\n```\n$ brew install python\n```\n\n## 1. Create Template:\n### 1.1. Base Template:\nThe Base Template contains necessary files for a screen using the [Clean Architecture](https://github.com/tuan188/MGCleanArchitecture) pattern.\n\nOpen Terminal, navigate to the folder you want to save the files and run:\n\n```\n$ igen template base [--window]\n```\n\n#### Options:\n\n`--window`: use UIWindow instead of UINavigationController in the Navigator.\n\nThe first time you use the `template` command, you need to enter your project information:\n\n```\nEnter project name: Your Project\nEnter developer name: Your Name\nEnter company name: Your Company\n```\n\nLater, if you want to update the information you can run:\n\n```\n$ igen config project\n```\n\n#### Example:\n\n```\n$ igen template base Login\n```\n\nOutput:\n\n```\nSuccessfully created files:\n Login/LoginViewModel.swift\n Login/LoginNavigator.swift\n Login/LoginUseCase.swift\n Login/LoginViewController.swift\n Login/LoginAssembler.swift\n Login/Test/LoginViewModelTests.swift\n Login/Test/LoginUseCaseMock.swift\n Login/Test/LoginNavigatorMock.swift\n Login/Test/LoginViewControllerTests.swift\n```\n\n### 1.2. Skeleton Template:\nTo create a Clean Architecture skeleton project, run:\n\n```\n$ igen template skeleton \n```\n\n#### Example:\nRun the following command in Terminal:\n\n```\n$ igen template skeleton DemoApp\n```\n\nOutput:\n\n```\nSuccessfully created files:\n DemoApp/Podfile\n DemoApp/gitignore\n DemoApp/Localizable.strings\n DemoApp/pull_request_template.md\n DemoApp/swiftlint.yml\n DemoApp/DemoApp-Bridging-Header.h\n DemoApp/Sources/UnitTestViewController.swift\n DemoApp/Sources/AppDelegate.swift\n DemoApp/Sources/Assembler.swift\n DemoApp/Sources/Support/Utils.swift\n DemoApp/Sources/Support/Extensions/UIViewController+.swift\n DemoApp/Sources/Support/Extensions/UIViewController+Rx.swift\n DemoApp/Sources/Data/Gateways/GatewaysAssembler.swift\n DemoApp/Sources/Data/API/APIError.swift\n DemoApp/Sources/Data/API/APIService.swift\n DemoApp/Sources/Data/API/APIInput.swift\n DemoApp/Sources/Data/API/APIOutput.swift\n DemoApp/Sources/Config/APIUrls.swift\n DemoApp/Sources/Scenes/App/AppAssembler.swift\n DemoApp/Sources/Scenes/App/AppNavigator.swift\n DemoApp/Sources/Scenes/App/AppUseCase.swift\n DemoApp/Sources/Scenes/App/AppViewModel.swift\n DemoApp/Sources/Scenes/Storyboards/Storyboards.swift\n```\n\n### 1.3. List Template:\nThe List Template shows a list of objects in a UITableView or a UICollectionView.\n\nCopy the model to the pasteboard (clipboard) then run:\n\n```\n$ igen template list [--section] [--collection] [--window] [--paging]\n```\n\n#### Options:\n\n`--paging`: use pagination.\n\n`--section`: show the list with header sections.\n\n`--collection`: use UICollectionView instead of UITableView.\n\n`--window`: use UIWindow instead of UINavigationController in the Navigator.\n\n#### Example:\nCopy the model:\n\n```swift\nstruct Product {\n let id: Int\n let name: String\n let price: Double\n}\n```\n\nthen run:\n\n```\n$ igen template list ProductList\n```\n\nOutput:\n\n```\nSuccessfully created files:\n ProductList/ProductListViewModel.swift\n ProductList/ProductItemViewModel.swift\n ProductList/ProductListNavigator.swift\n ProductList/ProductListUseCase.swift\n ProductList/ProductListViewController.swift\n ProductList/ProductCell.swift\n ProductList/ProductListAssembler.swift\n ProductList/Test/ProductListViewModelTests.swift\n ProductList/Test/ProductListUseCaseMock.swift\n ProductList/Test/ProductListNavigatorMock.swift\n ProductList/Test/ProductListViewControllerTests.swift\n ProductList/Test/ProductCellTests.swift\n```\n\n### 1.4. Detail Template:\nThe Detail Template shows details of an object in a UITableView.\n\nCopy the model then run:\n\n```\n$ igen template detail [--static] [--window]\n```\n\n#### Options:\n\n`--static`: display details of the object in a static UITableViewController.\n\n`--window`: use UIWindow instead of UINavigationController in the Navigator.\n\n#### Example:\nCopy the model:\n\n```swift\nstruct Product {\n let id: Int\n let name: String\n let price: Double\n}\n```\n\nthen run:\n\n```\n$ igen template detail ProductDetail\n```\n\nOutput:\n\n```\nSuccessfully created files:\n ProductDetail/ProductDetailViewModel.swift\n ProductDetail/ProductDetailNavigator.swift\n ProductDetail/ProductDetailUseCase.swift\n ProductDetail/ProductDetailViewController.swift\n ProductDetail/ProductIdCell.swift\n ProductDetail/ProductNameCell.swift\n ProductDetail/ProductPriceCell.swift\n ProductDetail/ProductDetailAssembler.swift\n ProductDetail/Test/ProductDetailViewModelTests.swift\n ProductDetail/Test/ProductDetailUseCaseMock.swift\n ProductDetail/Test/ProductDetailNavigatorMock.swift\n ProductDetail/Test/ProductDetailViewControllerTests.swift\n ProductDetail/Test/ProductDetailCellsTests.swift\n```\n\n### 1.5. Form Input Template:\nTo create a form input template for a model, copy the model then run:\n\n```\n$ igen template form [--submit SUBMIT] [--dynamic] [--window]\n```\n\n#### Options:\n\n`--submit`: set the name of the submit action.\n\n`--dynamic`: use the dynamic form instead of the static form.\n\n`--window`: use UIWindow instead of UINavigationController in the Navigator.\n\n#### Example:\nCopy the model:\n\n```swift\nstruct Product {\n var id: Int\n var name: String\n var price: Double\n}\n```\n\nthen run:\n\n```\n$ igen template form CreateProduct --submit Create\n```\n\nOutput:\n\n```\nSuccessfully created files:\n CreateProduct/CreateProductAssembler.swift\n CreateProduct/CreateProductNavigator.swift\n CreateProduct/CreateProductViewModel.swift\n CreateProduct/CreateProductUseCase.swift\n CreateProduct/CreateProductViewController.swift\n CreateProduct/Test/CreateProductUseCaseMock.swift\n CreateProduct/Test/CreateProductNavigatorMock.swift\n CreateProduct/Test/CreateProductViewModelTests.swift\n CreateProduct/Test/CreateProductViewControllerTests.swift\n```\n\n### 1.6. Setting Template:\nTo create a setting template, copy the setting enum then run:\n\n```\n$ igen template setting [--section] [--window]\n```\n\n#### Options:\n\n`--section`: show the list with header sections.\n\n`--window`: use UIWindow instead of UINavigationController in the Navigator.\n\n#### Example:\nCopy the enum:\n\n```swift\nenum SettingMenu {\n case about\n case support\n case facebook\n case email\n case rating\n}\n```\n\nthen run:\n\n```\n$ igen template setting Setting\n```\n\nOutput:\n\n```\nSuccessfully created files:\n Setting/SettingAssembler.swift\n Setting/SettingNavigator.swift\n Setting/SettingViewModel.swift\n Setting/SettingUseCase.swift\n Setting/SettingViewController.swift\n Setting/SettingMenuCell.swift\n Setting/Test/SettingUseCaseMock.swift\n Setting/Test/SettingNavigatorMock.swift\n Setting/Test/SettingViewModelTests.swift\n Setting/Test/SettingViewControllerTests.swift\n Setting/Test/SettingMenuCellTests.swift\n```\n\n### 1.7. Login template:\nTo create a login template, run:\n\n```\n$ igen template login [--window]\n```\n\n#### Options:\n\n`--window`: use UIWindow instead of UINavigationController in the Navigator.\n\n#### Example:\nRun:\n\n```\n$ igen template login Login\n```\n\nOutput:\n\n```\nSuccessfully created files:\n Login/LoginAssembler.swift\n Login/LoginNavigator.swift\n Login/LoginViewModel.swift\n Login/LoginUseCase.swift\n Login/LoginViewController.swift\n Login/LoginDto.swift\n Login/Test/LoginUseCaseMock.swift\n Login/Test/LoginNavigatorMock.swift\n Login/Test/LoginViewModelTests.swift\n Login/Test/LoginViewControllerTests.swift\n```\n\n\n## 2. Create a mock class for a protocol/function:\nCopy the protocol/function then run:\n\n```\n$ igen mock [-p]\n```\n\n#### Options:\n\n`-p`, `--print`: print the result.\n\n#### Example:\nCopy the protocol:\n\n```swift\nprotocol ProductsNavigatorType {\n func toProducts()\n func toProductDetail(product: Product)\n func toEditProduct(_ product: Product) -> Driver\n}\n```\n\nthen run:\n\n```\n$ igen mock\n```\n\nOutput:\n\n```\nThe result has been copied to the pasteboard.\n```\n\nContent in the pasteboard:\n\n```swift\nfinal class ProductsNavigatorMock: ProductsNavigatorType {\n\n // MARK: - toProducts\n\n var toProductsCalled = false\n\n func toProducts() {\n toProductsCalled = true\n } \n\n // MARK: - toProductDetail\n\n var toProductDetailCalled = false\n\n func toProductDetail(product: Product) {\n toProductDetailCalled = true\n } \n\n // MARK: - toEditProduct\n\n var toEditProductCalled = false\n var toEditProductReturnValue = Driver.empty()\n\n func toEditProduct(_ product: Product) -> Driver {\n toEditProductCalled = true\n return toEditProductReturnValue\n } \n}\n```\n\n## 3. Create unit tests for a view model:\nCopy the view model then run:\n\n```\n$ igen test [-p]\n```\n\n#### Options:\n\n`-p`, `--print`: print the result.\n\n#### Example:\n\nCopy the view model:\n\n```swift\nstruct LoginViewModel: ViewModel {\n struct Input {\n let usernameTrigger: Driver\n let passwordTrigger: Driver\n let loginTrigger: Driver\n }\n\n struct Output {\n @Property var usernameValidationMessage = \"\"\n @Property var passwordValidationMessage = \"\"\n @Property var isLoginEnabled = true\n @Property var isLoading = false\n @Property var error: Error?\n }\n```\n\nthen run:\n\n```\n$ igen test\n```\n\nOutput:\n\n```\nThe result has been copied to the pasteboard.\n```\n\nContent in the pasteboard:\n\n```swift\nfinal class LoginViewModelTests: XCTestCase {\n private var viewModel: LoginViewModel!\n private var navigator: LoginNavigatorMock!\n private var useCase: LoginUseCaseMock!\n private var input: LoginViewModel.Input!\n private var output: LoginViewModel.Output!\n private var disposeBag: DisposeBag!\n\n // Triggers\n private let usernameTriggerTrigger = PublishSubject()\n private let passwordTriggerTrigger = PublishSubject()\n private let loginTriggerTrigger = PublishSubject()\n\n override func setUp() {\n super.setUp()\n navigator = LoginNavigatorMock()\n useCase = LoginUseCaseMock()\n viewModel = LoginViewModel(navigator: navigator, useCase: useCase)\n\n input = LoginViewModel.Input(\n usernameTrigger: usernameTrigger.asDriverOnErrorJustComplete(),\n passwordTrigger: passwordTrigger.asDriverOnErrorJustComplete(),\n loginTrigger: loginTrigger.asDriverOnErrorJustComplete()\n )\n\n disposeBag = DisposeBag()\n output = viewModel.transform(input, disposeBag: disposeBag)\n }\n\n func test_usernameTriggerTrigger_() {\n // arrange\n\n\n // act\n\n\n // assert\n XCTAssert(true)\n }\n\n func test_passwordTriggerTrigger_() {\n // arrange\n\n\n // act\n\n\n // assert\n XCTAssert(true)\n }\n\n func test_loginTriggerTrigger_() {\n // arrange\n\n\n // act\n\n\n // assert\n XCTAssert(true)\n }\n\n}\n```\n\n## 4. Create an initialize method for a class/struct:\nCopy the class/struct then run the command:\n\n```\n$ igen init [-p]\n```\n\n#### Options:\n\n`-p`, `--print`: print the result.\n\n#### Example:\n\nCopy the model:\n\n```swift\nstruct Product {\n var id: Int\n var name: String\n var price: Double\n}\n```\n\nthen run:\n\n```\n$ igen init\n```\n\nOutput:\n\n```\nThe result has been copied to the pasteboard.\n```\n\nContent in the pasteboard:\n\n```swift\nextension Product {\n init() {\n self.init(\n id: 0,\n name: \"\",\n price: 0.0\n )\n }\n}\n```\n\n## 5. Create models from JSON:\nCopy the json then run the command:\n\n```\n$ igen json [-p]\n```\n\n#### Options:\n\n`\u2014-return-classes`: return classes instead of structs.\n\n`-p`, `--print`: print the result.\n\n#### Example:\nCopy the json:\n\n```json\n{\n \"id\": 989,\n \"content\": \"Hello world!\",\n \"is_read\": false,\n \"created_at\": \"2018-06-29T17:15:36+09:00\"\n}\n```\n\nthen run:\n\n```\n$ igen json Notice\n```\n\nOutput:\n\n```\nThe result has been copied to the pasteboard.\n```\n\nContent in the pasteboard:\n\n```swift\nstruct Notice {\n var id = 0\n var content = \"\"\n var isRead = false\n var createdAt = Date()\n}\n\nextension Notice: Then { }\n\nextension Notice: Mappable {\n init?(map: Map) {\n self.init()\n }\n\n mutating func mapping(map: Map) {\n id <- map[\"id\"]\n content <- map[\"content\"]\n isRead <- map[\"is_read\"]\n createdAt <- (map[\"created_at\"], DateTransform())\n }\n}\n```\n\n## 6. File header command:\nTo update files\u2019 headers, run:\n\n```\n$ igen header [--file-name] [--project] [--developer] [--created-date] [--copyright-year] [--company] \n```\n\n#### Options:\n\n`--file-name`: update file name.\n\n`--project`: update project.\n\n`--developer`: update developer.\n\n`--created-date`: update created date.\n\n`--copyright-year`: update copyright year.\n\n`--company`: update company.\n\nIf you don\u2019t set any options, the tool will update all header information base on its configuration file.\n\n#### Example:\n\nUpdate the company and the developer in AppDelegate\u2019s header.\n\n```\n$ igen header AppDelegate.swift --company --developer\n```\n\nYou can use wildcard as well:\n\nUpdate all Swift files:\n\n```\n$ igen header *.swift\n```\n\nUpdate all Swift files in the Domain folder and its child folders (recursive) :\n\n```\n$ igen header Domain/**/*.swift\n```\n\n## 7. Configuration:\n### 7.1. Configure the project information:\nTo update the project information, run:\n\n```\n$ igen config project [--global]\n```\n\n#### Options:\n\n`--global`: global configuration.\n\n### 7.2. View the configuration:\nTo view the configuration, run:\n\n```\n$ igen config [--global]\n```\n\n#### Options:\n\n`--global`: global configuration.\n\n### 7.3. Update a configuration:\n\n```\n$ igen config key value [--global] [--unset]\n```\n\n#### Options:\n`--global`: global configuration.\n`--unset`: delete a configuration.\n\n#### Configure the project id:\n\n```\n$ igen config project.id \n```\n\nUse the special value `@project` if you want to use the MD5 encoded project name as the project id.\n\n```\n$ igen config project.id @project\n```\n\nThe project id will be used in file headers.\n\n```swift\n//\n// AppDelegate.swift\n// MGiGen (d18ea2a2902863a858af4f0e0911ed35)\n//\n// Created by Tuan Truong on 3/27/19.\n// Copyright \u00a9 2019 Sun Asterisk. All rights reserved.\n//\n```\n\n#### Configure the output path:\n\n```\n$ igen config output.path \n```\n\nExample:\n\nSet the current working directory as the output path (relative path):\n\n```\n$ igen config output.path .\n```\n\nSet the desktop as the output path:\n\n```\n$ igen config output.path /Users//Desktop/\n```\n\nYou can use a special value `@here` to set the current working directory as the output path (absolute path):\n\n```\n$ igen config output.path @here\n```\n\nOther special values: `@desktop`, `@downloads`, `@documents`\n\n### 7.4. View the available configurations:\nTo view the available configurations, run:\n\n```\n$ igen config keys\n```\n\nOutput:\n\n```\nAvailable configuration keys:\n project.name\n project.developer\n project.company\n project.id\n output.path\n```\n\n### 7.5. Delete the configuration file:\nTo delete the configuration file, run:\n\n```\n$ igen config delete [--global]\n```\n\n#### Options:\n\n`--global`: global configuration.\n\n## 8. Install Xcode templates:\n\nInstall Clean Architecture templates for Xcode:\n\n```\n$ igen xcode install-templates\n```\n\nUninstall templates:\n\n```\n$ igen xcode uninstall-templates\n```\n\n## 9. Other commands:\n\nRun:\n\n```\n$ igen -h\n```\n\n## Links:\n* [Clean Architecture](https://github.com/tuan188/MGCleanArchitecture)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tuan188/MGiGen", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "igen", "package_url": "https://pypi.org/project/igen/", "platform": "", "project_url": "https://pypi.org/project/igen/", "project_urls": { "Homepage": "https://github.com/tuan188/MGiGen" }, "release_url": "https://pypi.org/project/igen/3.0.0/", "requires_dist": [ "Jinja2 (>=2.10)", "arghandler (>=1.2)" ], "requires_python": ">=3", "summary": "A code generator for iOS", "version": "3.0.0", "yanked": false, "yanked_reason": null }, "last_serial": 8677601, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "c5b85f9e4cc440dec7994ba3a9617b08", "sha256": "1cf44bd7517decada8e34bc8a993084b205843cd7178caccbb1a9200aca599f4" }, "downloads": -1, "filename": "igen-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "c5b85f9e4cc440dec7994ba3a9617b08", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 33611, "upload_time": "2018-09-30T07:28:38", "upload_time_iso_8601": "2018-09-30T07:28:38.200231Z", "url": "https://files.pythonhosted.org/packages/41/75/b1b887b8b2f48000cbce87b3c58a93aec4ac1c10fc398fbea343120fbcad/igen-1.0.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1b003fbc29770a4c29d008696910b56d", "sha256": "133e46bbb32e3b6e5318ba66fdef7ed93ff74e1603913e9753277af42cb51c73" }, "downloads": -1, "filename": "igen-1.0.0.tar.gz", "has_sig": false, "md5_digest": "1b003fbc29770a4c29d008696910b56d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15193, "upload_time": "2018-09-30T07:28:39", "upload_time_iso_8601": "2018-09-30T07:28:39.759666Z", "url": "https://files.pythonhosted.org/packages/1d/a3/67423592f061ae57f7615b263ffed232ff5827030206e8b548dd594d57d6/igen-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "840218f19483a0251e84af7ec486f5fb", "sha256": "67c108a6cdbd7f9f3d506218aab2aed39f1f40bc66e4830666642f104b4e5ee0" }, "downloads": -1, "filename": "igen-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "840218f19483a0251e84af7ec486f5fb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 33611, "upload_time": "2018-09-30T07:53:32", "upload_time_iso_8601": "2018-09-30T07:53:32.984050Z", "url": "https://files.pythonhosted.org/packages/ee/97/d64b87ab07bac63edc1a38f66d30b6c6c0642b40f565d7efe81feee0b658/igen-1.0.1-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3e402b2ba7b163d204b15a0c180e7daf", "sha256": "659f53e3c70422969de309efa85e30fd543543f1814a00aee3ac60f7ccf44ee0" }, "downloads": -1, "filename": "igen-1.0.1.tar.gz", "has_sig": false, "md5_digest": "3e402b2ba7b163d204b15a0c180e7daf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 15253, "upload_time": "2018-09-30T07:53:34", "upload_time_iso_8601": "2018-09-30T07:53:34.383495Z", "url": "https://files.pythonhosted.org/packages/58/38/d4a1725d0c5f307ea6b330a7c8fad78507a06caa9d4cefe0a5225b3482fe/igen-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "c2c1f0747d4a3396f420213dffabdeaf", "sha256": "54f594977a965fd61a69aaf8b0f27b596288e2c9a634fa483dd84eb42670aa7f" }, "downloads": -1, "filename": "igen-1.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "c2c1f0747d4a3396f420213dffabdeaf", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 35236, "upload_time": "2018-09-30T08:54:33", "upload_time_iso_8601": "2018-09-30T08:54:33.920208Z", "url": "https://files.pythonhosted.org/packages/33/a5/af8c9c2a13da5afb2da3811f282ad039544d4b6f0ee1fb0038b70a73fa91/igen-1.0.3-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fcfe8525f8ca0d0be4cc2e8fcd20d7b2", "sha256": "7b4037fa051da99b663684c81ce99b3099eb08e809346548fc234823a753fe06" }, "downloads": -1, "filename": "igen-1.0.3.tar.gz", "has_sig": false, "md5_digest": "fcfe8525f8ca0d0be4cc2e8fcd20d7b2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 17431, "upload_time": "2018-09-30T08:54:35", "upload_time_iso_8601": "2018-09-30T08:54:35.297965Z", "url": "https://files.pythonhosted.org/packages/27/57/c40945a563d39cada566aa8f0d44c5ba56fbc3bfaaf8a7cf909f03ea4751/igen-1.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "a72df9c9b23b76701fc4d0149df56f9b", "sha256": "086d6560301d35925d7cadfbc67ce236d761348bb0e4488bf3773cbaba3d9ace" }, "downloads": -1, "filename": "igen-1.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "a72df9c9b23b76701fc4d0149df56f9b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 35490, "upload_time": "2018-10-01T02:33:21", "upload_time_iso_8601": "2018-10-01T02:33:21.972995Z", "url": "https://files.pythonhosted.org/packages/de/e1/b954f56b7cce48443885e53f2dcc0a6fca25937484685bda9810f5cdfa57/igen-1.0.4-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "902882bcfa455aa5e20ea0bec4fa2221", "sha256": "089fe38b584bdca712c7e900798d8924ff96334abec6432ab3ba00212da44ab9" }, "downloads": -1, "filename": "igen-1.0.4.tar.gz", "has_sig": false, "md5_digest": "902882bcfa455aa5e20ea0bec4fa2221", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 17716, "upload_time": "2018-10-01T02:33:23", "upload_time_iso_8601": "2018-10-01T02:33:23.840728Z", "url": "https://files.pythonhosted.org/packages/8a/64/2367ceb84f483f0eb3a51c5b0a1b5d7833ba9fa49539a897a6d678394a39/igen-1.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "82d50a44abe7dd2186753b76faf5e9d7", "sha256": "6a6a2b07172da9c701e15ec4b1865ca6a6c5b42aad7f8630de8e69ac5432a6bf" }, "downloads": -1, "filename": "igen-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "82d50a44abe7dd2186753b76faf5e9d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 44880, "upload_time": "2018-10-08T08:33:03", "upload_time_iso_8601": "2018-10-08T08:33:03.242558Z", "url": "https://files.pythonhosted.org/packages/97/4a/c373ae872154feff45426485c9747b362acd623c0463bdcdb696873e0e8a/igen-1.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e34d1ae15f1b76367c0682680daa66d9", "sha256": "054ce32dee3c93bc05c9708ffd1237f64bf7c064a50bd89dd1e7c5c796d4c039" }, "downloads": -1, "filename": "igen-1.1.0.tar.gz", "has_sig": false, "md5_digest": "e34d1ae15f1b76367c0682680daa66d9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 21415, "upload_time": "2018-10-08T08:33:05", "upload_time_iso_8601": "2018-10-08T08:33:05.330898Z", "url": "https://files.pythonhosted.org/packages/e3/8d/5cd18aa180b5da37f963698bd6688b5924e4094cb1cc02c0c65aa62854ea/igen-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "a15771e42d6cdcc1cc498c0ccfee7f5a", "sha256": "3bd80bdbdebbfd623b7668835d668b4aad735cf69fed99c7accc331c20a21326" }, "downloads": -1, "filename": "igen-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a15771e42d6cdcc1cc498c0ccfee7f5a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 44870, "upload_time": "2018-10-09T02:27:59", "upload_time_iso_8601": "2018-10-09T02:27:59.254130Z", "url": "https://files.pythonhosted.org/packages/d2/bd/a3b3016754675d423ae138c9428ffc0d53115fdcdb533c23982ef87420bc/igen-1.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d24cd6d646311a7d0dc00e17beca8da2", "sha256": "4d1999b28d9a8677d88a841890b118eaed0c7024566aabc11989a50079bb9f22" }, "downloads": -1, "filename": "igen-1.1.1.tar.gz", "has_sig": false, "md5_digest": "d24cd6d646311a7d0dc00e17beca8da2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 21412, "upload_time": "2018-10-09T02:28:01", "upload_time_iso_8601": "2018-10-09T02:28:01.027383Z", "url": "https://files.pythonhosted.org/packages/05/f3/9a06ffe2e49a7523e276e61fbdcc74385f581c6d334ef40ad85983309fff/igen-1.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "5e1cff54d18496ac0f3fc755dd2269c8", "sha256": "90a31492e99af182716507f92a9ae6a652e37bf70086cab9d9929907370a49b9" }, "downloads": -1, "filename": "igen-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5e1cff54d18496ac0f3fc755dd2269c8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 45136, "upload_time": "2018-10-11T00:56:45", "upload_time_iso_8601": "2018-10-11T00:56:45.610361Z", "url": "https://files.pythonhosted.org/packages/ab/d3/a81b8185d924c6ca077a997616927ca491ac7521933e370ecd0ce165b8ee/igen-1.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cb00a3bf133ff7c110f5804cb39e0068", "sha256": "d1359ee160f989703fd60f361e37b1568ed09be919287dfed0ed0d6b5685e554" }, "downloads": -1, "filename": "igen-1.1.2.tar.gz", "has_sig": false, "md5_digest": "cb00a3bf133ff7c110f5804cb39e0068", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 21461, "upload_time": "2018-10-11T00:56:47", "upload_time_iso_8601": "2018-10-11T00:56:47.302674Z", "url": "https://files.pythonhosted.org/packages/cc/57/df75ae6f2216d13cad77267c1baf8b25f4d6e92a878f8dbff73c3f5a2664/igen-1.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "fb2bb04157964181b3f883efca534fde", "sha256": "83dc3387b955dca0d7cfebb5ba771451e75e3b5a3f598d7c735b462f2c1dbb28" }, "downloads": -1, "filename": "igen-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "fb2bb04157964181b3f883efca534fde", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 45477, "upload_time": "2018-10-19T03:33:52", "upload_time_iso_8601": "2018-10-19T03:33:52.288403Z", "url": "https://files.pythonhosted.org/packages/aa/48/10ef5229a8298624a79a477b1437929270b15614293bcbb2b3a8a2d2e0dd/igen-1.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c9164912f709135d13934e4055e7736e", "sha256": "40a25fe5bc20dc5bcc571f5d03205c14e8da88b8dda2d9ad84d1eb24eea2104f" }, "downloads": -1, "filename": "igen-1.1.3.tar.gz", "has_sig": false, "md5_digest": "c9164912f709135d13934e4055e7736e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 21690, "upload_time": "2018-10-19T03:33:54", "upload_time_iso_8601": "2018-10-19T03:33:54.199219Z", "url": "https://files.pythonhosted.org/packages/d5/db/4c2a3a866e6f6f49726fe6b3548892d67d3aa67da65a3d4ca6f1eebbddcf/igen-1.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "190d4c763676124f2d802aeddee3520b", "sha256": "61d1554ce5f0d8565ace9bd615862f90258de9df86d3c2837607312af5320223" }, "downloads": -1, "filename": "igen-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "190d4c763676124f2d802aeddee3520b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 53975, "upload_time": "2018-11-19T07:51:32", "upload_time_iso_8601": "2018-11-19T07:51:32.082240Z", "url": "https://files.pythonhosted.org/packages/3a/db/a49317226ecb4c38e2f3bcd8e80d5d62ad2ee1998d8ea719d5e8c7100456/igen-1.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "875482ba1e0ebbc010070c5b7bb49300", "sha256": "0bf14c726ae8a33c2e7c07d30aa8c48c4838b131ecb1794db1988ec6a603a953" }, "downloads": -1, "filename": "igen-1.2.0.tar.gz", "has_sig": false, "md5_digest": "875482ba1e0ebbc010070c5b7bb49300", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 25886, "upload_time": "2018-11-19T07:51:34", "upload_time_iso_8601": "2018-11-19T07:51:34.451144Z", "url": "https://files.pythonhosted.org/packages/fe/6c/4cd6d9c23835b222ec1a472f45061c81360e3d49d3ab278e9a5810e4dec2/igen-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "6ff862d5ed1cdc3f391422e21cf182bf", "sha256": "1abf58f9f020a2d975b844ef5fb1e157528626e9071374ca8351e355f63a2e40" }, "downloads": -1, "filename": "igen-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6ff862d5ed1cdc3f391422e21cf182bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 53960, "upload_time": "2018-11-21T07:42:32", "upload_time_iso_8601": "2018-11-21T07:42:32.181230Z", "url": "https://files.pythonhosted.org/packages/05/05/3513de0d277985c966978a01dbe9a2da81485dc69c017cc2143bc587204e/igen-1.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fe3ac6f0b09c5c939b680de4b954f24c", "sha256": "779ae43fa684b0c81f8492f6ec3492b05696c7f097aa2b882fc0edd2b25d3cf7" }, "downloads": -1, "filename": "igen-1.2.1.tar.gz", "has_sig": false, "md5_digest": "fe3ac6f0b09c5c939b680de4b954f24c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 25879, "upload_time": "2018-11-21T07:42:34", "upload_time_iso_8601": "2018-11-21T07:42:34.687968Z", "url": "https://files.pythonhosted.org/packages/31/20/9960648432466533b0d16f578558dcd4b102ef787bcd025e3fe7d4dbd0ad/igen-1.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "02839de112cb7cac9be7a753089274d0", "sha256": "b6e6197bc7f9597234c7622a16ce5aa67dcb3239720270ed5d55d73e7bcbb43c" }, "downloads": -1, "filename": "igen-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "02839de112cb7cac9be7a753089274d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 54368, "upload_time": "2018-11-30T04:33:25", "upload_time_iso_8601": "2018-11-30T04:33:25.866048Z", "url": "https://files.pythonhosted.org/packages/d6/39/560a97c9f13cb9b573a1850a2c4b08b05c0ee2de10cb9dc1360051827596/igen-1.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d972ae38bc6467daa68ee7f3fcac73c4", "sha256": "522af6467fad043e106253c88b08ef69347cc38d5d15cdc71169eadb9e629c5d" }, "downloads": -1, "filename": "igen-1.2.2.tar.gz", "has_sig": false, "md5_digest": "d972ae38bc6467daa68ee7f3fcac73c4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 26070, "upload_time": "2018-11-30T04:33:28", "upload_time_iso_8601": "2018-11-30T04:33:28.018611Z", "url": "https://files.pythonhosted.org/packages/a2/81/7c54beb530c2e17c4b9afc67a9acf9e0a904a105fa040ba3921745905855/igen-1.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "aac47495e5003b4465b9097bd4d7aa7a", "sha256": "70f40503aa8e756e5e824630acd4e03aff47c81abb28e59a37279cb26cecb3ad" }, "downloads": -1, "filename": "igen-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "aac47495e5003b4465b9097bd4d7aa7a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 62568, "upload_time": "2018-12-10T04:28:07", "upload_time_iso_8601": "2018-12-10T04:28:07.297229Z", "url": "https://files.pythonhosted.org/packages/cf/fd/99e436f9d573ec8a84a91d8e1637e634c741bfd0a2e9bc97020cc4714c67/igen-1.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e795ee5b42fec59562243bc431b3d034", "sha256": "67ea8e117bbf1b74dbaba84ea0c1cfe1f00ff083d12372fa966163602168ea7d" }, "downloads": -1, "filename": "igen-1.3.0.tar.gz", "has_sig": false, "md5_digest": "e795ee5b42fec59562243bc431b3d034", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 29747, "upload_time": "2018-12-10T04:28:09", "upload_time_iso_8601": "2018-12-10T04:28:09.541197Z", "url": "https://files.pythonhosted.org/packages/e8/7b/5a738b0906fbfb3459f0afa7fc6ee1c5b955a193ec6347920e2d438c7f25/igen-1.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "704c26a22a2f0c0b30cef89c2b37ffbe", "sha256": "8ecc8b6f25d4dec03266048c9280594e213e43a67a874d63b8f52f7aa01e2af2" }, "downloads": -1, "filename": "igen-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "704c26a22a2f0c0b30cef89c2b37ffbe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 64879, "upload_time": "2019-01-11T02:59:47", "upload_time_iso_8601": "2019-01-11T02:59:47.737915Z", "url": "https://files.pythonhosted.org/packages/01/26/25b6d3144b0063ccf0e2e23e85d7b6cf5815c97782967513af142e310852/igen-1.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1b3b14be9ea70b66a0c55d627823173c", "sha256": "9a487b0a37d8dd9f2a53e8a99b4a75be5ef8a3bc3a8fea84ff6583c230e5663b" }, "downloads": -1, "filename": "igen-1.4.0.tar.gz", "has_sig": false, "md5_digest": "1b3b14be9ea70b66a0c55d627823173c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 32384, "upload_time": "2019-01-11T02:59:51", "upload_time_iso_8601": "2019-01-11T02:59:51.136794Z", "url": "https://files.pythonhosted.org/packages/9c/38/6f9c7b84323d26aca3060b238f5cc79c758f1d27d647e2fe33a0437496f6/igen-1.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "d6fbe8cecf175b664207a2eb7c74705f", "sha256": "c0778ff7de17f267fb4eff74b2915a127698f18a0749aedcf5681bf787ea4a4f" }, "downloads": -1, "filename": "igen-1.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d6fbe8cecf175b664207a2eb7c74705f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 86490, "upload_time": "2019-02-27T03:12:52", "upload_time_iso_8601": "2019-02-27T03:12:52.616667Z", "url": "https://files.pythonhosted.org/packages/83/bd/d7a01a6584eb3019cc9961aa958f814af93135033b3db8ea98ead2da6a44/igen-1.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "88c2207f24a89f3b5b0a3e18ee068fdb", "sha256": "4610f6aad64218b282a2f74c8475a3794f7cf2ca296fbcfa8a5a8649041c4454" }, "downloads": -1, "filename": "igen-1.5.0.tar.gz", "has_sig": false, "md5_digest": "88c2207f24a89f3b5b0a3e18ee068fdb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 40906, "upload_time": "2019-02-27T03:12:54", "upload_time_iso_8601": "2019-02-27T03:12:54.733478Z", "url": "https://files.pythonhosted.org/packages/bf/b0/241b6d78aeac0e58f13a69e387f219eb78c0772b4a7dcb610b0df0e585a6/igen-1.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "ca5580188ddf97bef962e141b1c7b8fe", "sha256": "71281442546e6a3db342b734f40170f69a4708c375900982b397af8ff8ed56c7" }, "downloads": -1, "filename": "igen-1.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ca5580188ddf97bef962e141b1c7b8fe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 90028, "upload_time": "2019-04-01T02:16:52", "upload_time_iso_8601": "2019-04-01T02:16:52.968296Z", "url": "https://files.pythonhosted.org/packages/05/9d/ee4b7ba82f671c1a38b1594b03612885dd196a80a98dc7f83c99f057a568/igen-1.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d33d29924691b993dea66dd749ee510f", "sha256": "4ee8f509a837f051fbe14d7a31674d7a15e899d16b7c4a9db6889387d9bc3c88" }, "downloads": -1, "filename": "igen-1.6.0.tar.gz", "has_sig": false, "md5_digest": "d33d29924691b993dea66dd749ee510f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 44319, "upload_time": "2019-04-01T02:16:55", "upload_time_iso_8601": "2019-04-01T02:16:55.029473Z", "url": "https://files.pythonhosted.org/packages/6a/ed/ea62a7e8412b94b7134c40eb03009477ab841f20324399c3e843501c1ff9/igen-1.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "33e5afef1575e35dad424112ff7cd087", "sha256": "6d21fb2f710452b02668e7e5e40e3c0fcba5cb79b3fe26e01359911e347582d7" }, "downloads": -1, "filename": "igen-1.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "33e5afef1575e35dad424112ff7cd087", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 90813, "upload_time": "2019-07-18T07:34:26", "upload_time_iso_8601": "2019-07-18T07:34:26.806603Z", "url": "https://files.pythonhosted.org/packages/93/db/7fc0e4fd01737520d2a7fd55d0608a3e51e0271517ecd0809af14b8acd6a/igen-1.8.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a8e4fcc0007ec6465e63bbb57daaf7e0", "sha256": "274774610bed7707f23f6eac6b35a46ef0371fbdee63686dd2bbc28f84c314da" }, "downloads": -1, "filename": "igen-1.8.0.tar.gz", "has_sig": false, "md5_digest": "a8e4fcc0007ec6465e63bbb57daaf7e0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 45121, "upload_time": "2019-07-18T07:34:29", "upload_time_iso_8601": "2019-07-18T07:34:29.329004Z", "url": "https://files.pythonhosted.org/packages/a2/aa/4baf56ee574b9c2897d59d80a03087b7c3a4e1803aff03f57e37b70f8b12/igen-1.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "f154b5b95a4dda47867c80f6f72ad235", "sha256": "78f637769389ebc79a7ad6e59aecbf1f595ce238d83afe6e48eb41e11e1432b2" }, "downloads": -1, "filename": "igen-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f154b5b95a4dda47867c80f6f72ad235", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 91136, "upload_time": "2019-08-23T03:10:47", "upload_time_iso_8601": "2019-08-23T03:10:47.227213Z", "url": "https://files.pythonhosted.org/packages/dc/7a/6521d962a2fe0679f462aaa151acb47ca40c8821aa9d008c7698e7d1ca5e/igen-2.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "acc76c63b9d02eeede04da0852c5db22", "sha256": "18eb46b6df2be3acff15de2b461dcb91d58291a024930f81dee6f33bb5736276" }, "downloads": -1, "filename": "igen-2.0.0.tar.gz", "has_sig": false, "md5_digest": "acc76c63b9d02eeede04da0852c5db22", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 45614, "upload_time": "2019-08-23T03:10:55", "upload_time_iso_8601": "2019-08-23T03:10:55.594128Z", "url": "https://files.pythonhosted.org/packages/6d/cb/665548caed08355526665e676fe6e5a5ed467d0850857505e4ebb1a0a0d8/igen-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "ea444368512b1e60bff90bfa914df268", "sha256": "9aa54b3c889bbfccd05725ccfe053661ae471ede8395c45a6023641cb2ebcce7" }, "downloads": -1, "filename": "igen-2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ea444368512b1e60bff90bfa914df268", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 111982, "upload_time": "2019-10-28T06:33:50", "upload_time_iso_8601": "2019-10-28T06:33:50.699548Z", "url": "https://files.pythonhosted.org/packages/05/0c/b57e71dfb0c6b7d030615dc190c785d6154a47b8c5ab9a160769497473e8/igen-2.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "68d741d6d9cd0056c3336e0b0c631f70", "sha256": "10d723a0ff68babc41dc5153ded322dd9702aa250b45e9611d5c0c873d8df161" }, "downloads": -1, "filename": "igen-2.1.0.tar.gz", "has_sig": false, "md5_digest": "68d741d6d9cd0056c3336e0b0c631f70", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 59956, "upload_time": "2019-10-28T06:33:53", "upload_time_iso_8601": "2019-10-28T06:33:53.199049Z", "url": "https://files.pythonhosted.org/packages/6a/fc/26bb814401624893523dd8bb474a0caef926ded7613830ea7cee0e9baf93/igen-2.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "e6280b7e908d9194345a0605c94a587c", "sha256": "df8c2135e467132f4fefb3c7b0ce94c76dbabd2c24d3480e4e022640c211b62c" }, "downloads": -1, "filename": "igen-2.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e6280b7e908d9194345a0605c94a587c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 112003, "upload_time": "2019-10-28T07:49:57", "upload_time_iso_8601": "2019-10-28T07:49:57.769604Z", "url": "https://files.pythonhosted.org/packages/ee/03/e2287b5f7abba8cbdc294be62d27fae3948d096a2733ab55975bd439d8b9/igen-2.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c3833a070ee4cf464ed7fa44b87e4277", "sha256": "4f63371e75782d98167e128324a842041ec0bfe6305564a158f969c8fd7645a5" }, "downloads": -1, "filename": "igen-2.1.1.tar.gz", "has_sig": false, "md5_digest": "c3833a070ee4cf464ed7fa44b87e4277", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 59909, "upload_time": "2019-10-28T07:50:00", "upload_time_iso_8601": "2019-10-28T07:50:00.641305Z", "url": "https://files.pythonhosted.org/packages/71/86/035de237f7b58fac4f7fe1ac06ebae2d948374b7a28bbf795161bfb5a8f9/igen-2.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "684e20301af4fe29c1faf5a37d264326", "sha256": "3d8b8fd9ca8d91f018a53743df01c50d7425bba055581f4f9fd0e6e99e18acab" }, "downloads": -1, "filename": "igen-2.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "684e20301af4fe29c1faf5a37d264326", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 112500, "upload_time": "2020-07-09T02:45:48", "upload_time_iso_8601": "2020-07-09T02:45:48.607265Z", "url": "https://files.pythonhosted.org/packages/4b/72/1ec94b9728090fbbe0105f196bfefec7a5378b8a46743475b2422f23f2c0/igen-2.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b16b0539d804e3ba9c10294b59bfe882", "sha256": "6750dfce7a1645087f1a19fe5632c23de9a5eda58e10459abe42f357fd7785d5" }, "downloads": -1, "filename": "igen-2.2.0.tar.gz", "has_sig": false, "md5_digest": "b16b0539d804e3ba9c10294b59bfe882", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 60425, "upload_time": "2020-07-09T02:45:50", "upload_time_iso_8601": "2020-07-09T02:45:50.340016Z", "url": "https://files.pythonhosted.org/packages/cc/f5/ed53776a6a6f914457d89bae32ecd511a013986655aa7cb7021565f1a004/igen-2.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "dc87045d67057b3b8abc1aedfef0f33a", "sha256": "677f49a0396d81e147eaa60c84e466e311b22089a7471085c7dce69bb3b210f3" }, "downloads": -1, "filename": "igen-2.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dc87045d67057b3b8abc1aedfef0f33a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 112533, "upload_time": "2020-07-09T03:01:41", "upload_time_iso_8601": "2020-07-09T03:01:41.441458Z", "url": "https://files.pythonhosted.org/packages/35/30/c5eb75fd32dc68e7b8c28cf3f5631544dddadc10010740767aafc91f7ca8/igen-2.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e401b50f34ea46bc352a912d13fbd91d", "sha256": "f6d8d416fc7aea996564e9bfb8f4990ceac81a370ee8ce94e364f7271bb60ee5" }, "downloads": -1, "filename": "igen-2.2.1.tar.gz", "has_sig": false, "md5_digest": "e401b50f34ea46bc352a912d13fbd91d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 60330, "upload_time": "2020-07-09T03:01:43", "upload_time_iso_8601": "2020-07-09T03:01:43.154212Z", "url": "https://files.pythonhosted.org/packages/37/ee/e697f827db8a8000855669abd51fc38c22de685471ac15aa912c90af1d03/igen-2.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "515d635ca013262bc60c47d734af3316", "sha256": "f60c371e22fa5343279fb25c833c156150ee8d29520809463d11794e78e501d6" }, "downloads": -1, "filename": "igen-3.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "515d635ca013262bc60c47d734af3316", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 116210, "upload_time": "2020-11-17T09:11:24", "upload_time_iso_8601": "2020-11-17T09:11:24.765899Z", "url": "https://files.pythonhosted.org/packages/a0/6e/9ec2e2d570f9d99a6b371990352c0461f3ac651ead65eb8eb998e4561581/igen-3.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c8152ebf97c7a988442ae4a369e91215", "sha256": "4391774b37e0a0ff5bca75df9847b7bfb923146e860ab8ffac8eb91a0c1e9be7" }, "downloads": -1, "filename": "igen-3.0.0.tar.gz", "has_sig": false, "md5_digest": "c8152ebf97c7a988442ae4a369e91215", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 67154, "upload_time": "2020-11-17T09:11:26", "upload_time_iso_8601": "2020-11-17T09:11:26.227312Z", "url": "https://files.pythonhosted.org/packages/7c/39/fefdf28daa2074af75a98dd63cab7d79448967ccd9deeddda114e05251af/igen-3.0.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "515d635ca013262bc60c47d734af3316", "sha256": "f60c371e22fa5343279fb25c833c156150ee8d29520809463d11794e78e501d6" }, "downloads": -1, "filename": "igen-3.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "515d635ca013262bc60c47d734af3316", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 116210, "upload_time": "2020-11-17T09:11:24", "upload_time_iso_8601": "2020-11-17T09:11:24.765899Z", "url": "https://files.pythonhosted.org/packages/a0/6e/9ec2e2d570f9d99a6b371990352c0461f3ac651ead65eb8eb998e4561581/igen-3.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c8152ebf97c7a988442ae4a369e91215", "sha256": "4391774b37e0a0ff5bca75df9847b7bfb923146e860ab8ffac8eb91a0c1e9be7" }, "downloads": -1, "filename": "igen-3.0.0.tar.gz", "has_sig": false, "md5_digest": "c8152ebf97c7a988442ae4a369e91215", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 67154, "upload_time": "2020-11-17T09:11:26", "upload_time_iso_8601": "2020-11-17T09:11:26.227312Z", "url": "https://files.pythonhosted.org/packages/7c/39/fefdf28daa2074af75a98dd63cab7d79448967ccd9deeddda114e05251af/igen-3.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }