aboutsummaryrefslogtreecommitdiff
path: root/src/ee/__main__.py
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2017-09-03 11:21:17 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2017-09-03 11:21:17 +0200
commitd59fb211556cd9b5a2bc028c5cf8a37b891cbfb3 (patch)
tree000b6bde185b8ff79efff97a3a46e0628bac92d7 /src/ee/__main__.py
parentc895e6c051cfda77a22b31367cf5c0bbedce4249 (diff)
downloadee-python-d59fb211556cd9b5a2bc028c5cf8a37b891cbfb3.tar.gz
ee-python-d59fb211556cd9b5a2bc028c5cf8a37b891cbfb3.tar.bz2
ee-python-d59fb211556cd9b5a2bc028c5cf8a37b891cbfb3.tar.xz
ee-python-d59fb211556cd9b5a2bc028c5cf8a37b891cbfb3.zip
o Adding tools to download facts about parts from Digi-Key.
Diffstat (limited to 'src/ee/__main__.py')
-rw-r--r--src/ee/__main__.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/ee/__main__.py b/src/ee/__main__.py
new file mode 100644
index 0000000..75688c0
--- /dev/null
+++ b/src/ee/__main__.py
@@ -0,0 +1,53 @@
+from functools import total_ordering
+import ee.tools
+import importlib
+import logging
+import pkgutil
+import sys
+
+def eprint(*args, **kwargs):
+ print(*args, file=sys.stderr, **kwargs)
+
+@total_ordering
+class Tool(object):
+ def __init__(self, module_name, name):
+ self.module_name = module_name
+ self.name = name
+
+ def __eq__(self, other):
+ return self.name == other.name
+
+ def __lt__(self, other):
+ return self.name < other.name
+
+def find_tools():
+ prefix = ee.tools.__name__ + '.'
+ ps = pkgutil.walk_packages(ee.tools.__path__, prefix)
+ tools = []
+ for (module_loader, module_name, ispkg) in ps:
+ name = module_name.replace(prefix, '').replace('_', '-')
+ tools.append(Tool(module_name, name))
+ return sorted(tools)
+
+if __name__ == "__main__":
+
+ logging.basicConfig() # you need to initialize logging, otherwise you will not see anything from requests
+ logging.getLogger().setLevel(logging.DEBUG)
+ requests_log = logging.getLogger("requests.packages.urllib3")
+ requests_log.setLevel(logging.DEBUG)
+ requests_log.propagate = True
+
+ tools = find_tools()
+
+ name = sys.argv[1]
+ del sys.argv[1]
+
+ for t in tools:
+ if t.name != name:
+ continue
+ sys.argv[0] = t.name
+ importlib.import_module(t.module_name)
+ exit(0)
+
+ eprint("No such tool: {}".format(name))
+ exit(1)