Comments (4)
Hi @Enolerobotti,
Thank you for bringing this to our attention! Yes, the slow part is the source code inspection in order to extract the help strings from comments. In our machine learning workflows, we find this overhead to be acceptable, but we can imagine that certain applications may need a faster argument parser. In the future, we will add a flag to disable this. Concretely, we would skip this call:
typed-argument-parser/tap/tap.py
Line 93 in 0dc69b3
Best,
Kyle and Jesse
from typed-argument-parser.
Hi @martinjm97,
Thank you for your reply!
Indeed, the _get_class_variables
method works slow. The problem is that when I try to use ChemProp in my workflow, I need some default arguments (which are defined inside a TAP instance) to be loaded several times. I have to initiate TAP based classes several times due to an assertion (btw, for me it looks redundant). So, for ensemble of 10 models, I spend additional 0.5 sec per molecule to predict. For list longer than 1000 molecules it would be worth for me to get rid of redundant operations.
Cheers,
Artem
from typed-argument-parser.
That makes sense! I didn't think a Tap
would be in an inner loop. We'll add the flag soon and then you can save the 500s for your 1000 molecules! Thanks for letting us know and for the clear explanation.
--Jesse
from typed-argument-parser.
Encountering the same issue, but now it seems like the class variables are being used on line 72 in _add_argument
:
# Description
if variable in self.class_variables:
kwargs['help'] += ' ' + self.class_variables[variable]['comment']
and on line 298 in _add_arguments
:
# Add class variables (in order)
for variable in self.class_variables:
As that variable is now also being used for ordering, is it now not possible to make this change as noted above?
from typed-argument-parser.
Related Issues (20)
- Add useful type hints to `Tap.add_subparsers` HOT 1
- Add useful type hints to `Tap.add_subparser` HOT 5
- Refactor `tapify` to enable subparsers HOT 1
- Type safe way to access subparser arguments? HOT 2
- Fix `tapify` to correctly handle **kwargs HOT 1
- [Suggestion] Allow to reference previous arguments as default values HOT 1
- Allow for multi-line documentation of the function HOT 1
- Tuple parsing with literals HOT 1
- [help] Adding `version` arg to print version but bypassing required args HOT 3
- tapify help string order is random HOT 1
- More convenient syntax for subparsers
- ImportError: cannot import name 'Tap' from 'tap' HOT 3
- What's the best way to create a parser from a Pydantic model? HOT 3
- Human readable JSON for saved Python object HOT 1
- Add support for using the `Annotated` type to provide comments for the help string HOT 1
- Tapify, docstrings and typing.NamedTuples
- [suggestion] Class variable arguments with multiline defaults do not respect help comments HOT 1
- add_argument should not overwrite properties defined in class member. HOT 1
- Versions should not be compared as strings HOT 1
- Tap eats my custom error messages :( HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from typed-argument-parser.