{ "info": { "author": "GuardianAngel", "author_email": "zhling2012@live.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "\u3010\u5929\u4f7f\u53bb\u91cd\u3011\u53ef\u4ee5\u505a\u4ec0\u4e48\uff1f\n=======================\n\u8d44\u6599\u6587\u4ef6\u5939\u8d8a\u6765\u8d8a\u81c3\u80bf\uff1f\n\u81ea\u5df1\u5b58\u7684\u7167\u7247\u6587\u6863\u548c\u5c0f\u7535\u5f71\u590d\u5236\u6765\u590d\u5236\u53bb\u5360\u4e86\u4e00\u5927\u5806\u7a7a\u95f4\u53c8\u4e0d\u77e5\u9053\u5220\u9664\u54ea\u4e9b\u597d\uff1f\n\u591a\u4e2a\u5907\u4efd\u6587\u4ef6\u5939\u548c\u6587\u4ef6\u6709\u91cd\u53e0\u4f46\u53c8\u4e0d\u6562\u968f\u4fbf\u5220\u9664\u53c8\u61d2\u5f97\u4e00\u4e2a\u4e2a\u67e5\u770b\u800c\u5bfc\u81f4\u6d6a\u8d39\u7a7a\u95f4\uff1f\n\n\u8ba9 \u3010\u5929\u4f7f\u53bb\u91cd\u3011 \u62ef\u6551\u4f60\uff01\n\n - \u65e0\u5dee\u522b\u53bb\u91cd\uff1a\u4e0d\u9650\u5236\u6587\u4ef6\u7c7b\u578b\uff0c\u53bb\u9664\u4e00\u5207\u91cd\u590d\u6587\u4ef6\uff0c\u56fe\u7247\u89c6\u9891\u97f3\u4e50\u6587\u6863\u7b49\u7b49\uff0c\u5b89\u5168\u53c8\u9ad8\u6548\u3002\n\n - \u591a\u4e2a\u6a21\u5f0f\u53ef\u9009\uff0c\u53ef\u4ee5\u8bbe\u7f6e\uff1a\n - \u81ea\u52a8\u68c0\u6d4b\u5e76\u5904\u7406\u91cd\u590d\u6587\u4ef6\uff0c\n - \u81ea\u52a8\u68c0\u6d4b\u53ea\u8fd4\u56de\u91cd\u590d\u6587\u4ef6\uff08\u4e0d\u5220\u9664\uff09\uff0c\n - \u4ea4\u4e92\u6a21\u5f0f\u4e0b\u81ea\u52a8\u5220\u9664\uff0c\n - \u4ea4\u4e92\u6a21\u5f0f\u4e0b\u63d0\u793a\u5220\u9664\n \n - \u901f\u5ea6\u5feb\uff1a\u53ef\u8bbe\u7f6e\u7f16\u7801\u62bd\u6837\u6216\u8005\u591a\u8fdb\u7a0b\uff0c\u8f6c\u773c\u5c31\u5b8c\u6210\n\n\u61d2\u4eba\u798f\u97f3\u6709\u6728\u6709\uff01\n\n\u9884\u5148\u63d0\u9192\uff01\u8fd9\u4e2a\u7248\u672c\u786e\u8ba4\u5220\u9664\u540e\u4e0d\u53ef\u6062\u590d\uff01\u8bf7\u8c28\u614e\u64cd\u4f5c\uff01\uff01\uff01\uff08\u4e4b\u540e\u7248\u672c\u4f1a\u589e\u52a0\u6062\u590d\u529f\u80fd\u656c\u8bf7\u671f\u5f85\uff09\n\n\u600e\u4e48\u5b89\u88c5\uff1f\n=========\n```linux shell\n$ pip install duplremover\n```\n\u6216\u8005\u76f4\u63a5\u4e0b\u8f7d duplremover \u6587\u4ef6\u5939\u5230\u4f60\u7684\u9879\u76ee\u76ee\u5f55\u4e0b\u4e5f\u884c\n\n\u600e\u4e48\u4f7f\u7528\n=========\n\n\u5bfc\u5165\u5e76\u5b9e\u4f8b\u5316\uff1a\n```python\nfrom duplremover.duplicate_remover import DuplRm\n\nDR = DuplRm(directory='your file path', # \u9700\u8981\u53bb\u91cd\u7684\u6587\u4ef6\u5939\u5730\u5740\n recursive_traversal=True, # \u662f\u5426\u68c0\u67e5\u5b50\u6587\u4ef6\u5939\uff0c\u9ed8\u8ba4\u662f\n types=None, # \u6307\u5b9a\u68c0\u67e5\u7684\u6587\u4ef6\u7c7b\u578b\u5217\u8868\uff0c\u4f8b\u5982['jpg', 'png']\uff0c\u9ed8\u8ba4\u4e3aNone\uff0c\u5373\u68c0\u67e5\u6240\u6709\u7c7b\u578b\n sampling_matching=True, # \u662f\u5426\u4ee5\u6587\u4ef6\u4e8c\u8fdb\u5236\u62bd\u6837\u7684\u65b9\u5f0f\u53bb\u91cd\uff0c\u9ed8\u8ba4\u662f\n interactive_mode=False, # \u662f\u5426\u4ee5\u4ea4\u4e92\u6a21\u5f0f\u8c03\u7528\uff0c\u9ed8\u8ba4\u5426\n auto_delete=False, # \u662f\u5426\u5141\u8bb8\u81ea\u52a8\u5220\u9664\uff0c\u9ed8\u8ba4\u5426\n remove_zero_size_file=False, # \u662f\u5426\u81ea\u52a8\u5220\u96640kb\u7684\u5e9f\u6587\u4ef6\uff0c\u9ed8\u8ba4\u5426\n remove_empty_dirs=False, # \u662f\u5426\u81ea\u52a8\u5220\u9664\u7a7a\u767d\u6587\u4ef6\u5939\uff0c\u9ed8\u8ba4\u5426\n multiprocess=False, # \u662f\u5426\u542f\u7528\u591a\u8fdb\u7a0b\uff08\u542f\u7528\u540e\u65e5\u5fd7\u8f93\u5165\u6709\u5f71\u54cd\uff09\uff0c\u9ed8\u8ba4\u5426\n log_level=None, # \u65e5\u5fd7\u7ea7\u522b\uff0c\u9ed8\u8ba4info\u7ea7\u522b\n )\n```\n\u5728\u5b9e\u4f8b\u5316\u65f6\u6307\u5b9a\u76f8\u5e94\u7684\u9009\u9879\uff0c\u8bbe\u7f6e\u76f8\u5173\u529f\u80fd\uff0c\u7279\u522b\u8bf4\u660e\u4ee5\u4e0b\u8fd9\u51e0\u4e2a\uff1a\n\n recursive_traversal \u5982\u679c\u5b50\u6587\u4ef6\u5939\u7684\u5185\u5bb9\u662f\u5176\u4ed6\u7684\u4e1c\u897f\uff0c\u6216\u8005\u80af\u5b9a\u6ca1\u6709\u91cd\u590d\u7684\uff0c\u90a3\u53ef\u4ee5\u8bbe\u7f6e\u4e3aFalse\u6bd4\u8f83\u4fdd\u9669\n sampling_matching \u4ee5\u4e8c\u8fdb\u5236\u62bd\u6837\u7684\u65b9\u5f0f\u53bb\u91cd\uff0c\u5f53\u5f85\u53bb\u91cd\u7684\u6587\u4ef6\u4e4b\u95f4\u7684\u533a\u522b\u8f83\u5c0f\u7684\u65f6\u5019\uff08\u4f8b\u5982\u8d85\u9ad8\u901f\u8fde\u62cd\u7684\u7167\u7247\uff09\uff0c\u5efa\u8bae\u8bbe\u7f6e\u4e3aFalse\uff0c\u5426\u5219\u5728\u62bd\u6837\u65f6\u5f88\u53ef\u80fd\u9519\u8fc7\u8fd9\u4e9b\u5fae\u5c0f\u7684\u5dee\u522b\uff0c\u5f53\u7136\u901f\u5ea6\u4f1a\u6162\u5f88\u591a\u5f88\u591a\u3002\n interactive_mode \u4ea4\u4e92\u6a21\u5f0f\u4e0b\uff0c\u8f93\u51fa\u662f\u7ec8\u7aef\u6253\u5370\uff08\u975e\u4ea4\u4e92\u6a21\u5f0f\u8f93\u51fa\u7684\u662flog\uff09\u3002\u4e00\u4e9b\u60c5\u51b5\u4e0b\u9700\u8981\u624b\u52a8\u8f93\u5165\u5b57\u7b26\u8fdb\u884c\u64cd\u4f5c\u786e\u8ba4\n auto_delete \u5efa\u8bae\u4ec5\u5728\u76ee\u6807\u6587\u4ef6\u5939\u5185\u7684\u6587\u4ef6\u662f\u975e\u91cd\u8981\u7684\uff0c\u6216\u8005\u81ea\u52a8\u5316\u90e8\u7f72\u65f6\u4f7f\u7528\uff08\u518d\u6b21\u63d0\u9192\uff01\u672c\u6b21\u7248\u672c\u5220\u9664\u540e\u6587\u4ef6\u6682\u65f6\u65e0\u6cd5\u6062\u590d\uff0c\u6570\u636e\u65e0\u4ef7\uff0c\u8c28\u614e\uff01\uff09\n multiprocess \u542f\u7528\u591a\u8fdb\u7a0b\u65f6\uff0c\u65e5\u5fd7\u8f93\u51fa\u4e0d\u6b63\u5e38\uff08\u5c06\u6765\u7248\u672c\u6539\u8fdb\uff09\uff0c\u5efa\u8bae\u5728\u81ea\u52a8\u5316\u90e8\u7f72\u65f6\u8003\u8651\u4f7f\u7528\n\n\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u53ea\u662f\u60f3\u786e\u8ba4\u4e00\u4e0b\u6587\u4ef6\u5939\u5185\u662f\u5426\u5305\u542b\u91cd\u590d\u6587\u4ef6\uff0c\u53ea\u9700\u8981\u8bbe\u7f6e\u4e00\u4e2a\u6216\u4e24\u4e2a\u53c2\u6570\u5373\u53ef:\n```python\nfrom duplremover.duplicate_remover import DuplRm\n\nDR = DuplRm('your file path') # \u53ea\u68c0\u67e5\u5e76\u8f93\u51fa\u91cd\u590d\u6587\u4ef6\uff0c\u4e0d\u8fdb\u884c\u4efb\u4f55\u64cd\u4f5c\nDR_2 = DuplRm('your file path', interactive_mode=True) # \u68c0\u67e5\u91cd\u590d\uff0c\u5e76\u4e14\u5728\u63d0\u793a\u4e0b\u8f93\u5165\u64cd\u4f5c\u5b57\u7b26\u5b8c\u6210\u64cd\u4f5c\n```\n\u5b9e\u4f8b\u5316\u5b8c\u6210\u540e\uff0c\u4fbf\u53ef\u4ee5\u76f4\u63a5\u8c03\u7528\u5bf9\u8c61\u7684start\u65b9\u6cd5\u5373\u53ef:\n```python\nDR.start()\n```\n\u4e3a\u4e86\u66f4\u597d\u7684\u8bf4\u660e\u6548\u679c\uff0c\u6211\u5f04\u4e86\u4e00\u4e9b\u6d4b\u8bd5\u7528\u7684\u6587\u4ef6\uff08\u73af\u5883\u662fwindows\uff0c\u5f53\u7136linux\u4e0b\u4e5f\u662f\u4e0d\u6210\u95ee\u9898\u7684\uff09\u3002\n\u6587\u4ef6\u5939\u7ed3\u6784\u5982\u4e0b\uff0c\u6709\u4e00\u4e9bjpg\uff0cmp3\uff0cmp4\u548cini\u6587\u4ef6\uff0c\u6709\u4e9b\u662f\u91cd\u590d\u7684\uff0c\u6709\u4e9b\u91cd\u590d\u6587\u4ef6\u5728\u5b50\u6587\u4ef6\u5939sub\u4e0b\u9762\uff1a\n\n![Markdown](http://i2.tiimg.com/702641/a989ce5c7d9cebba.jpg)\n![Markdown](http://i2.tiimg.com/702641/6ae55047fbf9d3ca.jpg)\n\n\n\u4ee5\u4ea4\u4e92\u6a21\u5f0f\u4e0b\u5b9e\u4f8b\u5316\u5e76\u4f20\u5165\u6587\u4ef6\u5939\u8def\u5f84\uff1a\n```python\nfrom duplremover.duplicate_remover import DuplRm\n\nDR = DuplRm('E:\\\\test\\\\', interactive_mode=True)\nDR.start()\n```\n\n\u8f93\u51fa\u5982\u4e0b\u56fe\uff1a\n![Markdown](http://i2.tiimg.com/702641/59e98b647b2e0ec7.jpg)\n\n\u7a0b\u5e8f\u6210\u529f\u68c0\u67e5\u51fa\u6587\u4ef6\u5939\u5185\u7684\u6587\u4ef6\u7c7b\u578b\u548c\u5bf9\u5e94\u7684\u6570\u76ee\uff0c\u8fd9\u65f6\u5019\u4f60\u53ef\u4ee5\u5192\u53f7\u540e\u9762\u8f93\u5165\u60f3\u8981\u53bb\u91cd\u7684\u6587\u4ef6\u7c7b\u578b\u7684\u7f16\u53f7\uff0c\u4f8b\u5982\u201c0\u201d\uff0c\u6216\u8005\u591a\u79cd\u7c7b\u578b\uff0c\u7528\u4efb\u610f\u7b26\u53f7\u5206\u5272\uff1a\u201c0,2,3\u201d\uff0c\n\u76f4\u63a5\u56de\u8f66\uff0c\u6216\u8005\u8f93\u5165\u5176\u4ed6\u5b57\u7b26\uff08\u5305\u62ec\u4e0d\u5728\u9009\u9879\u5185\u7684\u6570\u5b57\uff0c\u4f8b\u5982\u201c5\u201d\uff09\uff0c\u5c06\u8df3\u8fc7\u624b\u52a8\u9009\u62e9\uff0c\u81ea\u52a8\u9009\u62e9\u5168\u90e8\u7684\u6587\u4ef6\u7c7b\u578b\u3002\n\n\u63a5\u4e0b\u6765\u6211\u8981\u68c0\u67e5\u5168\u90e8\u7684\u6587\u4ef6\u7684\u91cd\u590d\u60c5\u51b5\uff0c\u4e0b\u56fe\u662f\u76f4\u63a5\u6309\u4e0b\u56de\u8f66\u952e\u7684\u6548\u679c\uff1a\n![Markdown](http://i2.tiimg.com/702641/9215a609f9a0c6dd.jpg)\n\n\u53ef\u4ee5\u770b\u89c1\u7a0b\u5e8f\u5f00\u59cb\u6267\u884c\u53bb\u91cd\u68c0\u67e5\uff0c\u5148\u68c0\u67e5\u4e86ini\u6587\u4ef6\u7c7b\u578b\uff0c\u5e76\u4e14\u53d1\u73b0\u4e86\u91cd\u590d\u7684\u6587\u4ef6\uff0c\u4e00\u4e2a\u4f4d\u4e8etest\u6587\u4ef6\u5939\u4e0b\uff0c\u53e6\u4e00\u4e2a\u4f4d\u4e8e\u5176\u5b50\u6587\u4ef6\u5939sub\u4e0b\uff0c\n\u63a5\u4e0b\u6765\u53ef\u4ee5\u9009\u62e9\u9700\u8981\u4fdd\u7559\u7684\u6587\u4ef6\uff0c\"0\" \u6216\u8005 \"0,1\"\uff0c\u903b\u8f91\u4e0e\u4e0a\u4e00\u6b65\u4e00\u6837\uff0c\u7559\u7a7a\u5219\u4fdd\u7559\u6240\u6709\u6587\u4ef6\u3002\u6ce8\u610f\u5982\u679c\u4e00\u65e6\u8f93\u5165\u4e86\u8981\u4fdd\u7559\u7684\u6587\u4ef6\u7f16\u53f7\uff0c\u672a\u88ab\u9009\u4e2d\u7684\u5c06\u4f1a\u88ab\u5220\u9664\n\n\u8f93\u5165\u201c1\u201d\u6309\u4e0b\u56de\u8f66\uff1a\n![Markdown](http://i2.tiimg.com/702641/08ad8babbdfb378f.jpg)\n\n\u7a0b\u5e8f\u63d0\u793a\u662f\u5426\u786e\u8ba4\u5220\u9664\uff0c\u8f93\u5165\u201cyes\u201d\u6216\u8005\u201cy\u201d\uff0c\u6587\u4ef6\u4f1a\u7acb\u9a6c\u88ab\u5220\u9664\uff0c\u5176\u4ed6\u4efb\u610f\u5b57\u7b26\u5219\u6216\u76f4\u63a5\u56de\u8f66\u5219\u8df3\u8fc7\n\n\u8f93\u5165\u201cy\u201d\u5e76\u6309\u4e0b\u56de\u8f66\uff1a\n![Markdown](http://i2.tiimg.com/702641/c914ef6a300b2c35.jpg)\n\u7a0b\u5e8f\u63d0\u793a\u6587\u4ef6\u5df2\u7ecf\u88ab\u6210\u529f\u5220\u9664\u6389\u4e86\uff0c\u5e76\u4e14\u7acb\u5373\u8fdb\u5165\u4e0b\u4e00\u4e2a\u91cd\u590d\u6587\u4ef6\u68c0\u6d4b\u5faa\u73af\uff0c\u53d1\u73b0ini\u6587\u4ef6\u53ea\u6709\u8fd9\u4e24\u4e2a\u91cd\u590d\uff0c\u5219\u81ea\u52a8\u8fdb\u5165\u4e0b\u4e00\u4e2a\u7c7b\u578b\u7684\u5224\u65ad\u4e2d\uff08JPG\u7c7b\u578b\uff09\u3002\n\n\u540e\u9762\u7684\u64cd\u4f5c\u90fd\u5927\u540c\u5c0f\u5f02\uff0c\u53ea\u662f\u786e\u8ba4\u8f93\u5165\u7684\u7f16\u53f7\u662f\u6b63\u786e\u7684\u5c31\u884c\u3002\n\n\u6700\u540e\u5904\u7406\u5b8c\u6210\uff0c\u7a0b\u5e8f\u4f1a\u63d0\u793a\u603b\u5171\u5220\u9664\u7684\u6587\u4ef6\u4e2a\u6570\uff1a\n![Markdown](http://i2.tiimg.com/702641/319215728fbe3e1b.jpg)\n\n\n\u5982\u679c\u5728\u4ea4\u4e92\u6a21\u5f0f\u4e0b\uff0cauto_delete\u53c2\u6570\u4e5f\u8bbe\u7f6e\u4e3aTrue\u7684\u8bdd\uff0c\u9664\u4e86\u5728\u5f00\u59cb\u7c7b\u578b\u9009\u62e9\u65f6\u6709\u63d0\u793a\u8f93\u5165\u68c0\u6d4b\u7c7b\u578b\u4e4b\u5916\uff0c\u540e\u9762\u7684\u5220\u9664\u90fd\u662f\u81ea\u52a8\u5b8c\u6210\uff0c\u5c06\u4e0d\u4f1a\u7ed9\u8f93\u5165\u7684\u9009\u9879\uff1a\n![Markdown](http://i2.tiimg.com/702641/dc54ac1f9f0fdd0d.jpg)\n\n\u975e\u4ea4\u4e92\u6a21\u5f0f\u4e0b\uff0cauto_delete\u8bbe\u7f6e\u4e3aFalse\u7684\u8f93\u51fa\u6548\u679c\u5982\u4e0b\uff1a\n![Markdown](http://i1.fuimg.com/702641/7df61b7ec840ef7b.jpg)\n\n\u6b64\u524d\u5982\u679c\u4f60\u7528\u4e00\u4e2a\u53d8\u91cf\u63a5\u6536\u8c03\u7528start\u65b9\u6cd5\u8fd4\u56de\u7684\u6570\u636e\u7684\u8bdd\uff0c\u4f60\u4f1a\u53d1\u73b0\u5b83\u662f\u4e00\u4e2a\u5b57\u5178\uff08\u5982\u679c\u4e0d\u662f\u8fd9\u4e2a\u6a21\u5f0f\uff0c\u8fd4\u56de\u7684\u4f7f\u4e2aNone\u503c\uff09\uff0c\u5305\u542b\u4e86\u68c0\u6d4b\u5230\u7684\u91cd\u590d\u6587\u4ef6\u7684\u7c7b\u578b\u548c\u8def\u5f84\uff0c\u4f8b\u5982\uff1a\n```python\nfrom duplremover.duplicate_remover import DuplRm\n\nDR = DuplRm('E:\\\\test\\\\', interactive_mode=False, auto_delete=False)\nres = DR.start()\nprint(res)\n```\n\nres\u7684\u503c\u4e3a\uff1a\n```python\n{'jpg': ['E:\\\\test\\\\sub\\\\IMG_0003 - \u526f\u672c.JPG', 'E:\\\\test\\\\IMG_0003 - \u526f\u672c.JPG', 'E:\\\\test\\\\sub\\\\IMG_0003.JPG', 'E:\\\\test\\\\IMG_0003.JPG'], 'mp3': ['E:\\\\test\\\\test_mp3_file_4.8Mb - \u526f\u672c.mp3', 'E:\\\\test\\\\test_mp3_file_4.8Mb.mp3'], 'mp4': ['E:\\\\test\\\\test_mp4_file_20Mb - \u526f\u672c.mp4', 'E:\\\\test\\\\test_mp4_file_20Mb.mp4']}\n```\n\n\u6700\u540e\u4e00\u79cd\u6a21\u5f0f\uff0c\u975e\u4ea4\u4e92\u6a21\u5f0f\u4e0b\u542f\u7528\u81ea\u52a8\u5220\u9664\uff0c\u4ec5\u5efa\u8bae\u5728\u975e\u91cd\u8981\u6570\u636e\u6216\u8005\u81ea\u52a8\u7a0b\u5e8f\u8c03\u7528\u65f6\u4f7f\u7528\uff0c\u8f93\u51fa\u6548\u679c\u5982\u4e0b\uff1a\n![Markdown](http://i1.fuimg.com/702641/ce82d7e172b471f6.jpg)\n\n\u6700\u540e\u518d\u5570\u55e6\u4e00\u4e0b\uff0c\u6570\u636e\u9ad8\u65e0\u4ef7\uff0c\u64cd\u4f5c\u9700\u8c28\u614e\uff01\uff08\u5220\u9519\u4e86\u91cd\u8981\u6587\u4ef6\u522b\u627e\u6211\u256e\uff08\u256f\uff3f\u2570\uff09\u256d\uff0c\u4e89\u53d6\u4e0b\u4e2a\u7248\u672c\u589e\u52a0\u6062\u590d\u529f\u80fd\uff09\n====\"# duplremover\"", "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/GuardianGH/duplremover/tree/master/duplremover", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "duplremover", "package_url": "https://pypi.org/project/duplremover/", "platform": "", "project_url": "https://pypi.org/project/duplremover/", "project_urls": { "Homepage": "https://github.com/GuardianGH/duplremover/tree/master/duplremover" }, "release_url": "https://pypi.org/project/duplremover/0.0.3/", "requires_dist": null, "requires_python": "", "summary": "remove any duplicated files", "version": "0.0.3", "yanked": false, "yanked_reason": null }, "last_serial": 6114067, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "154ccf36640c6e28794e8b563df82681", "sha256": "50713043f18bb310b11bc11a3338488a10a681c23187ff86816d7475cc2b48b4" }, "downloads": -1, "filename": "duplremover-0.0.1.tar.gz", "has_sig": false, "md5_digest": "154ccf36640c6e28794e8b563df82681", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9985, "upload_time": "2019-10-31T05:04:14", "upload_time_iso_8601": "2019-10-31T05:04:14.549579Z", "url": "https://files.pythonhosted.org/packages/fb/4d/073eb7ad9d3555de28ce25c45cf972c6b26d565fa4bc5c0e0ef5b71c4994/duplremover-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "d00c859cfdec20c899647c3e6adc3230", "sha256": "7830ac91ae1007e14721af365dc6798367e2a4f04ddb988daf8b219ca5f2f484" }, "downloads": -1, "filename": "duplremover-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d00c859cfdec20c899647c3e6adc3230", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10186, "upload_time": "2019-11-01T11:17:34", "upload_time_iso_8601": "2019-11-01T11:17:34.829477Z", "url": "https://files.pythonhosted.org/packages/a9/ba/42091474bd724299348bcdff299c627fb721f2242ba7c3360f218f9dad20/duplremover-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "b5f121ad46e73b1b3ba775dd7780bd06", "sha256": "7bc192a4afc1108cfeaa06df16fb153f1575224075182623ee24a432fa39b825" }, "downloads": -1, "filename": "duplremover-0.0.3.tar.gz", "has_sig": false, "md5_digest": "b5f121ad46e73b1b3ba775dd7780bd06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12814, "upload_time": "2019-11-11T06:19:36", "upload_time_iso_8601": "2019-11-11T06:19:36.341223Z", "url": "https://files.pythonhosted.org/packages/3b/ea/ec6e630ecfb92f6a6db9de307505d67330621613d0fc5e8fad0dad75025a/duplremover-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b5f121ad46e73b1b3ba775dd7780bd06", "sha256": "7bc192a4afc1108cfeaa06df16fb153f1575224075182623ee24a432fa39b825" }, "downloads": -1, "filename": "duplremover-0.0.3.tar.gz", "has_sig": false, "md5_digest": "b5f121ad46e73b1b3ba775dd7780bd06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12814, "upload_time": "2019-11-11T06:19:36", "upload_time_iso_8601": "2019-11-11T06:19:36.341223Z", "url": "https://files.pythonhosted.org/packages/3b/ea/ec6e630ecfb92f6a6db9de307505d67330621613d0fc5e8fad0dad75025a/duplremover-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }