| 22 | |
| 23 | |
| 24 | class DumpPitData: |
| 25 | PIT_DIR_NAME = "financial" |
| 26 | PIT_CSV_SEP = "," |
| 27 | DATA_FILE_SUFFIX = ".data" |
| 28 | INDEX_FILE_SUFFIX = ".index" |
| 29 | |
| 30 | INTERVAL_quarterly = "quarterly" |
| 31 | INTERVAL_annual = "annual" |
| 32 | |
| 33 | PERIOD_DTYPE = C.pit_record_type["period"] |
| 34 | INDEX_DTYPE = C.pit_record_type["index"] |
| 35 | DATA_DTYPE = "".join( |
| 36 | [ |
| 37 | C.pit_record_type["date"], |
| 38 | C.pit_record_type["period"], |
| 39 | C.pit_record_type["value"], |
| 40 | C.pit_record_type["index"], |
| 41 | ] |
| 42 | ) |
| 43 | |
| 44 | NA_INDEX = C.pit_record_nan["index"] |
| 45 | |
| 46 | INDEX_DTYPE_SIZE = struct.calcsize(INDEX_DTYPE) |
| 47 | PERIOD_DTYPE_SIZE = struct.calcsize(PERIOD_DTYPE) |
| 48 | DATA_DTYPE_SIZE = struct.calcsize(DATA_DTYPE) |
| 49 | |
| 50 | UPDATE_MODE = "update" |
| 51 | ALL_MODE = "all" |
| 52 | |
| 53 | def __init__( |
| 54 | self, |
| 55 | csv_path: str, |
| 56 | qlib_dir: str, |
| 57 | backup_dir: str = None, |
| 58 | freq: str = "quarterly", |
| 59 | max_workers: int = 16, |
| 60 | date_column_name: str = "date", |
| 61 | period_column_name: str = "period", |
| 62 | value_column_name: str = "value", |
| 63 | field_column_name: str = "field", |
| 64 | file_suffix: str = ".csv", |
| 65 | exclude_fields: str = "", |
| 66 | include_fields: str = "", |
| 67 | limit_nums: int = None, |
| 68 | ): |
| 69 | """ |
| 70 | |
| 71 | Parameters |
| 72 | ---------- |
| 73 | csv_path: str |
| 74 | stock data path or directory |
| 75 | qlib_dir: str |
| 76 | qlib(dump) data director |
| 77 | backup_dir: str, default None |
| 78 | if backup_dir is not None, backup qlib_dir to backup_dir |
| 79 | freq: str, default "quarterly" |
| 80 | data frequency |
| 81 | max_workers: int, default None |