* Add Counter class
* Update to_dataframe(): use data_prefix for dict
* Call self.args.save_args() after self.args.info_args()
* Add functions:
- set_verbosity_debug()
- set_verbosity_info()
- set_verbosity_warning()
- set_verbosity_error()
* Update AppTyper:
- accept args, kwargs
* Update str_table(): index_header
* Add normalize_simple_list_in_json()
* Add NewProjectEnv, NewCommonArguments
* Update NewProjectEnv:
- date_format -> datetime_format
- message_level -> logging_level
- message_format -> logging_format
* Update LoggingFormat: add TRACE_*
* Add do_nothing(), info_r()
* Update setup_logger(): level -> logging_level
* Update AppTyper: add run()
* Update NewProjectEnv:
- logging_home -> output_home
- Add output_name, run_version
- Add output_dir, csv_logger
* Update NewProjectEnv
- csv_logger -> _csv_logger
* Update LoggingFormat: '%(levelname)-8s' -> '%(levelname)-7s'
* Update NewProjectEnv:
- current_file: Path = Path(sys.argv[0])
* Update NewCommonArguments:
- self.env.output_home -> self.env.output_dir
* Add now_stamp()
* Accept delay for now()
* Update NewProjectEnv:
- time_stamp with delay (for test)
* Update NewProjectEnv:
- Add suffix_argument_file(), suffix_logging_file(), update_run_version()
* Update NewProjectEnv:
- logging_level: int = Field(default=logging.INFO)
- Call self.setup_logger(self.logging_level) in self.after()
* Add tb_events_to_csv()
* Add non_empty_files()
* Update Counter: add __str__(), __repr__()
* Add LoggerWriter
* Add convert_all_events_in_dir()
* Add log_table()
* Update to_table_lines()
* Update NewProjectEnv:
- add output_file
- remove _csv_logger
* Use log_table() in info_args(), info_env()
* Add NewIOArguments
* Add strip_lines()
* Update to_dataframe(): accept sorted_keys
* default format of time_stamp is '%m%d-%H%M%S'
* Update new_path() for pre, post is not None
* Update NewProjectEnv: default logging_format=LoggingFormat.BRIEF_00
* Update FileStreamer.__init__(): set self.path
* Update JobTimer: save args when verbose >= 2
* Add find_sublist_range()
* Update find_sublist_range(): accept case_sensitive
* Add all_line_list(), text_blocks()
* Update text_blocks(): remove \n only