command_line.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/usr/bin/env python
  2. """
  3. IEPY administration command.
  4. Usage:
  5. iepy --create <folder_path> [--lang=<lang>]
  6. iepy --upgrade <folder_path>
  7. iepy --download-third-party-data [--lang=<lang>]
  8. Options:
  9. --create Creates new IEPY instance
  10. --upgrade Upgrades IEPY instance
  11. --download-third-party-data Downloads the necesary data from third party software
  12. --lang=<lang> Language to use (for downloading data, or instance setup) [default: en]
  13. -h --help Show this screen
  14. --version Version number
  15. """
  16. import sys
  17. import nltk.data
  18. from docopt import docopt
  19. import iepy
  20. from iepy.instantiation.instance_admin import InstanceManager
  21. from iepy.preprocess.tagger import download as download_tagger
  22. from iepy.preprocess.corenlp import download as download_corenlp
  23. from iepy.preprocess.ner.stanford import download as download_ner
  24. _SUPPORTED_LANGS = ['en', 'es', 'de']
  25. def execute_from_command_line(argv=None):
  26. opts = docopt(__doc__, argv=argv, version=iepy.__version__)
  27. lang = opts['--lang']
  28. if lang not in _SUPPORTED_LANGS:
  29. print("Language '{}' is not between supported ones ({}).".format(
  30. lang, ', '.join(_SUPPORTED_LANGS)))
  31. sys.exit()
  32. if opts["--download-third-party-data"]:
  33. download_third_party_data(lang)
  34. elif opts["--create"]:
  35. InstanceManager(opts["<folder_path>"], lang=lang).create()
  36. elif opts['--upgrade']:
  37. InstanceManager(opts["<folder_path>"]).upgrade()
  38. def download_third_party_data(lang):
  39. print("Downloading punkt tokenizer")
  40. nltk.download("punkt")
  41. print("Downloading wordnet")
  42. nltk.download("wordnet")
  43. download_tagger()
  44. download_ner()
  45. download_corenlp(lang)
  46. if __name__ == "__main__":
  47. execute_from_command_line()