* Move AppTyper to chrisbase.data
* Move OptionData, ResultData, ArgumentGroupData, TimeChecker, CommonArguments to chrisbase.data
* Add MLArguments to nlpbook.arguments
* Update info_arguments(): remove logger param
* Move csv_logger from ProjectEnv to ProgressChecker
* Rename reconfigure_output() to configure_csv_logger()
* Move RuntimeChecking from nlpbook.arugment to chrisbase.data
* Move ArgumentsUsing from nlpbook.arguments to chrisbase.data
* Move JobTimer from chrisbase.io to chrisbase.data
* Update JobTimer
- Accept args param and check time and save arguments
* Update check_ip_addrs(): work concurrently
* Update CommonArguments:
- Rename save_arguments() -> save_args()
- Rename info_arguments() -> info_args()
* Update JobTimer:
- Default verbose=True
- Default flush_sec=0.3
- self.args.info_args() called automatically
* Add MongoDB to chrisbase.util
* Update check_ip_addrs():
- Add param: mongo
* Update ProjectEnv:
- Add member: max_workers
* Remove check_ip_addrs()
* Update MongoDB:
- Default clear_table=False
* Add future_result(), all_future_results()
* Update MongoDB:
- Accept param: pool
* Update all_future_results(): use_tqdm
* Update chrisbase.proc
* Update time_tqdm_cls
* Add run-mongod.sh
* Add wait_future_jobs()
* Remove gather_results()
* Add get_ip_addrs(), yield_local_addrs() to chrisbase.io
* Update ProjectEnv:
- Add member: num_ip_addrs, ip_addrs
* Sync check_ip_addrs.py and crawl_wikipedia.py
* Update wait_future_jobs(): return failed_jobs
* Fix dataframe(): when member is None
* Update output_table(): use tqdm
* Adding find_fields(): for gathering
* Rename output_table() to export_table()
* Update export_table(): return existing indices
* Update process_query(): _id=i+1
* Add from_scratch to DataOption
* Update export(): print failed queries