{"action":"created","issue":{"url":"https://api.github.com/repos/vinci1it2000/formulas/issues/13","repository_url":"https://api.github.com/repos/vinci1it2000/formulas","labels_url":"https://api.github.com/repos/vinci1it2000/formulas/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/vinci1it2000/formulas/issues/13/comments","events_url":"https://api.github.com/repos/vinci1it2000/formulas/issues/13/events","html_url":"https://github.com/vinci1it2000/formulas/issues/13","id":340260495,"node_id":"MDU6SXNzdWUzNDAyNjA0OTU=","number":13,"title":"Heavyweight dependencies","user":{"login":"adamhooper","id":10812,"node_id":"MDQ6VXNlcjEwODEy","avatar_url":"https://avatars3.githubusercontent.com/u/10812?v=4","gravatar_id":"","url":"https://api.github.com/users/adamhooper","html_url":"https://github.com/adamhooper","followers_url":"https://api.github.com/users/adamhooper/followers","following_url":"https://api.github.com/users/adamhooper/following{/other_user}","gists_url":"https://api.github.com/users/adamhooper/gists{/gist_id}","starred_url":"https://api.github.com/users/adamhooper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamhooper/subscriptions","organizations_url":"https://api.github.com/users/adamhooper/orgs","repos_url":"https://api.github.com/users/adamhooper/repos","events_url":"https://api.github.com/users/adamhooper/events{/privacy}","received_events_url":"https://api.github.com/users/adamhooper/received_events","type":"User","site_admin":false},"labels":[{"id":527422686,"node_id":"MDU6TGFiZWw1Mjc0MjI2ODY=","url":"https://api.github.com/repos/vinci1it2000/formulas/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":{"login":"vinci1it2000","id":11716821,"node_id":"MDQ6VXNlcjExNzE2ODIx","avatar_url":"https://avatars2.githubusercontent.com/u/11716821?v=4","gravatar_id":"","url":"https://api.github.com/users/vinci1it2000","html_url":"https://github.com/vinci1it2000","followers_url":"https://api.github.com/users/vinci1it2000/followers","following_url":"https://api.github.com/users/vinci1it2000/following{/other_user}","gists_url":"https://api.github.com/users/vinci1it2000/gists{/gist_id}","starred_url":"https://api.github.com/users/vinci1it2000/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vinci1it2000/subscriptions","organizations_url":"https://api.github.com/users/vinci1it2000/orgs","repos_url":"https://api.github.com/users/vinci1it2000/repos","events_url":"https://api.github.com/users/vinci1it2000/events{/privacy}","received_events_url":"https://api.github.com/users/vinci1it2000/received_events","type":"User","site_admin":false},"assignees":[{"login":"vinci1it2000","id":11716821,"node_id":"MDQ6VXNlcjExNzE2ODIx","avatar_url":"https://avatars2.githubusercontent.com/u/11716821?v=4","gravatar_id":"","url":"https://api.github.com/users/vinci1it2000","html_url":"https://github.com/vinci1it2000","followers_url":"https://api.github.com/users/vinci1it2000/followers","following_url":"https://api.github.com/users/vinci1it2000/following{/other_user}","gists_url":"https://api.github.com/users/vinci1it2000/gists{/gist_id}","starred_url":"https://api.github.com/users/vinci1it2000/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vinci1it2000/subscriptions","organizations_url":"https://api.github.com/users/vinci1it2000/orgs","repos_url":"https://api.github.com/users/vinci1it2000/repos","events_url":"https://api.github.com/users/vinci1it2000/events{/privacy}","received_events_url":"https://api.github.com/users/vinci1it2000/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2018-07-11T14:12:16Z","updated_at":"2018-07-20T11:33:21Z","closed_at":null,"author_association":"NONE","body":"Steps to reproduce:\r\n\r\n1. `mkdir formulas-too-large && cd formulas-too-large`\r\n1. `pipenv install`\r\n1. `pipenv install formulas`\r\n1. `du -sh ~/.local/share/virtualenvs/formulas-too-large-*/lib/python3.6/site-packages/`\r\n1. `pipenv graph`\r\n\r\nExpected results: the packages `formulas` would reasonably need to fulfil its function.\r\n\r\nActual results: **150M** of dependencies (including *.pyc, excluding `pip` itself)\r\n\r\n```\r\nformulas==0.0.10\r\n  - numpy [required: Any, installed: 1.14.5]\r\n  - openpyxl [required: Any, installed: 2.5.4]\r\n    - et-xmlfile [required: Any, installed: 1.0.1]\r\n    - jdcal [required: Any, installed: 1.4]\r\n  - regex [required: Any, installed: 2018.6.21]\r\n  - schedula [required: >=0.1.18, installed: 0.1.19]\r\n    - bs4 [required: Any, installed: 0.0.1]\r\n      - beautifulsoup4 [required: Any, installed: 4.6.0]\r\n    - dill [required: !=0.2.7, installed: 0.2.8.2]\r\n    - docutils [required: Any, installed: 0.14]\r\n    - flask [required: Any, installed: 1.0.2]\r\n      - click [required: >=5.1, installed: 6.7]\r\n      - itsdangerous [required: >=0.24, installed: 0.24]\r\n      - Jinja2 [required: >=2.10, installed: 2.10]\r\n        - MarkupSafe [required: >=0.23, installed: 1.0]\r\n      - Werkzeug [required: >=0.14, installed: 0.14.1]\r\n    - graphviz [required: Any, installed: 0.8.4]\r\n    - jinja2 [required: Any, installed: 2.10]\r\n      - MarkupSafe [required: >=0.23, installed: 1.0]\r\n    - lxml [required: Any, installed: 4.2.3]\r\n    - networkx [required: >=2.0.0, installed: 2.1]\r\n      - decorator [required: >=4.1.0, installed: 4.3.0]\r\n    - Pygments [required: Any, installed: 2.2.0]\r\n    - regex [required: Any, installed: 2018.6.21]\r\n    - sphinx [required: Any, installed: 1.7.5]\r\n      - alabaster [required: >=0.7,<0.8, installed: 0.7.11]\r\n      - babel [required: !=2.0,>=1.3, installed: 2.6.0]\r\n        - pytz [required: >=0a, installed: 2018.5]\r\n      - docutils [required: >=0.11, installed: 0.14]\r\n      - imagesize [required: Any, installed: 1.0.0]\r\n      - Jinja2 [required: >=2.3, installed: 2.10]\r\n        - MarkupSafe [required: >=0.23, installed: 1.0]\r\n      - packaging [required: Any, installed: 17.1]\r\n        - pyparsing [required: >=2.0.2, installed: 2.2.0]\r\n        - six [required: Any, installed: 1.11.0]\r\n      - Pygments [required: >=2.0, installed: 2.2.0]\r\n      - requests [required: >=2.0.0, installed: 2.19.1]\r\n        - certifi [required: >=2017.4.17, installed: 2018.4.16]\r\n        - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]\r\n        - idna [required: >=2.5,<2.8, installed: 2.7]\r\n        - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]\r\n      - setuptools [required: Any, installed: 40.0.0]\r\n      - six [required: >=1.5, installed: 1.11.0]\r\n      - snowballstemmer [required: >=1.1, installed: 1.2.1]\r\n      - sphinxcontrib-websupport [required: Any, installed: 1.1.0]\r\n  - sphinx [required: Any, installed: 1.7.5]\r\n    - alabaster [required: >=0.7,<0.8, installed: 0.7.11]\r\n    - babel [required: !=2.0,>=1.3, installed: 2.6.0]\r\n      - pytz [required: >=0a, installed: 2018.5]\r\n    - docutils [required: >=0.11, installed: 0.14]\r\n    - imagesize [required: Any, installed: 1.0.0]\r\n    - Jinja2 [required: >=2.3, installed: 2.10]\r\n      - MarkupSafe [required: >=0.23, installed: 1.0]\r\n    - packaging [required: Any, installed: 17.1]\r\n      - pyparsing [required: >=2.0.2, installed: 2.2.0]\r\n      - six [required: Any, installed: 1.11.0]\r\n    - Pygments [required: >=2.0, installed: 2.2.0]\r\n    - requests [required: >=2.0.0, installed: 2.19.1]\r\n      - certifi [required: >=2017.4.17, installed: 2018.4.16]\r\n      - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]\r\n      - idna [required: >=2.5,<2.8, installed: 2.7]\r\n      - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]\r\n    - setuptools [required: Any, installed: 40.0.0]\r\n    - six [required: >=1.5, installed: 1.11.0]\r\n    - snowballstemmer [required: >=1.1, installed: 1.2.1]\r\n    - sphinxcontrib-websupport [required: Any, installed: 1.1.0]\r\n```\r\n\r\nThe following dependencies seem unreasonable:\r\n\r\n* bs4 (0.7M)\r\n* docutils (3.8M)\r\n* flask (4.0M)\r\n* graphviz (0.1M)\r\n* jinja2\r\n* lxml (14.0M)\r\n* Pygments (6.1M)\r\n* sphinx (36M, avoiding double-counting)\r\n\r\nAnd the following seem questionable, so perhaps their necessity should be documented?\r\n\r\n* openpyxl (2.6M)\r\n* networkx (14M, seems like overkill)\r\n\r\nNumpy is 57MB -- that explains the rest.\r\n\r\nThis bug report implicates `schedula`'s dependencies, too."},"comment":{"url":"https://api.github.com/repos/vinci1it2000/formulas/issues/comments/406574397","html_url":"https://github.com/vinci1it2000/formulas/issues/13#issuecomment-406574397","issue_url":"https://api.github.com/repos/vinci1it2000/formulas/issues/13","id":406574397,"node_id":"MDEyOklzc3VlQ29tbWVudDQwNjU3NDM5Nw==","user":{"login":"vinci1it2000","id":11716821,"node_id":"MDQ6VXNlcjExNzE2ODIx","avatar_url":"https://avatars2.githubusercontent.com/u/11716821?v=4","gravatar_id":"","url":"https://api.github.com/users/vinci1it2000","html_url":"https://github.com/vinci1it2000","followers_url":"https://api.github.com/users/vinci1it2000/followers","following_url":"https://api.github.com/users/vinci1it2000/following{/other_user}","gists_url":"https://api.github.com/users/vinci1it2000/gists{/gist_id}","starred_url":"https://api.github.com/users/vinci1it2000/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vinci1it2000/subscriptions","organizations_url":"https://api.github.com/users/vinci1it2000/orgs","repos_url":"https://api.github.com/users/vinci1it2000/repos","events_url":"https://api.github.com/users/vinci1it2000/events{/privacy}","received_events_url":"https://api.github.com/users/vinci1it2000/received_events","type":"User","site_admin":false},"created_at":"2018-07-20T11:33:21Z","updated_at":"2018-07-20T11:33:21Z","author_association":"OWNER","body":"Analysis of formulas==0.1.0 size\r\n=======================\r\nUsing python 3.7 and the latest version of formulas (0.1.0) and schedula (0.2.0), I obtained the following results:\r\n\r\n  | site-packages size\r\n-- | --\r\nformulas==0.0.10 | 104M\r\nformulas[all]==0.1.0 | 69M\r\nformulas[plot]==0.1.0 | 66M\r\nformulas[excel]==0.1.0 | 49M\r\nformulas==0.1.0 | 47M\r\n\r\nThe dependencies graph of the latest version of formulas (i.e., formulas==0.1.0) is the following:\r\n```\r\nformulas==0.1.0\r\n  - numpy [required: Any, installed: 1.14.5]\r\n  - regex [required: Any, installed: 2018.7.11]\r\n  - schedula [required: >=0.2.0, installed: 0.2.0]\r\n    - dill [required: !=0.2.7, installed: 0.2.8.2]\r\n    - networkx [required: >=2.0.0, installed: 2.1]\r\n      - decorator [required: >=4.1.0, installed: 4.3.0]\r\n```\r\n\r\nTo reproduce the [results](https://github.com/vinci1it2000/formulas/files/2213634/results.zip) run `bash` [run.txt](https://github.com/vinci1it2000/formulas/files/2213624/run.txt)\r\n\r\nNote\r\n----\r\n`networkx` is the skeleton of the `schedula.Dispatcher` class. `schedula` is performing the runtime selection of the minimum-workflow to be invoked to compile the excel formulas and workbook."}}
{"actor":{"display_login":"vinci1it2000"}}