HawaData 0.16.3
Use For Unified Hawa Data.

# 文档

## 说明

1. 用于 Hawa 相关的所有服务的统一数据计算（避免重复计算）。

## 依赖

- Python 3.10+

## 流程
### 1. 初始化配置文件
1. 设置MySQL数据库
2. 设置Redis数据库
3. 设置MongoDB数据库
4. 设置 COMPLETED True
````
set_project() # 参数见文档
# or
set_project(build_set_project_params(project))

````
### 2. 启动服务
1. 启动MongoDB数据库
```` 
.connect()
````

### 3. 使用
````
# 学校报告数据
data = SchoolHealthReportData(**{"meta_unit_id": 3707030003, "target_year": 2021})
# mht web 数据
data = SchoolMhtWebData(**{"meta_unit_id": 4107110001, "target_year": 2022})
````


## 版本
- 0.0.1 Use For Unified Hawa Data.
- 0.0.2 Add build_set_project_params function.
- 0.0.3 Add new inheritance classes.
- 0.0.4 Fix mht data web support.
- 0.0.5 Fix mht student score group error.
- 0.0.6 Fix mro order.
- 0.0.7 Add mht grade name.
- 0.1.0 Filter validity
- 0.1.1 Revove mht unused students
- 0.1.2 Use sqlarchemy engine replace mysqlclient conn
- 0.1.3 Fix local engine
- 0.1.4 Fix not same data by mht final score
- 0.1.5 Fix float to int error
- 0.1.6 Fix special students
- 0.1.7 Handle link error for db.
- 0.1.8 Fix mysqldb cursor error.
- 0.1.9 Fix redundant async
- 0.2.0 Add district data
- 0.2.1 Move gender count data to health.
- 0.2.2 Move health school to health report
- 0.2.3 Fix cache year data
- 0.2.4 Filter users when length id <18
- 0.2.5 Filter users when length id <18 true
- 0.2.6 Fix rank dis
- 0.2.7 Fix miss grade
- 0.2.8 Fix miss grade all
- 0.2.9 Fix miss grade again
- 0.3.0 Fix more school when query school
- 0.3.1 Update replace select *
- 0.3.2 performance improvement by nickname/username、cronbach_alpha、code_word
- 0.3.3 performance improvement by grade
- 0.3.4 up to py3.11
- 0.3.5 fix engine encoding
- 0.3.6 update sqlarchemy to 2+
- 0.3.7 update pandas to 2+
- 0.3.8 fix loss data
- 0.4.0 add case project_id
- 0.4.1 fix miss grade data
- 0.5.0 add health api data
- 0.5.1 add grade param
- 0.5.2 fix score rank percent
- 0.5.3 add NoCasesError
- 0.5.4 add NoCasesError
- 0.5.5 add gender compare data to health api
- 0.5.6 add dim or field gender compare data to health api
- 0.5.7 update describe_grade_text
- 0.5.8 update other report text
- 0.5.9 add grade periods
- 0.5.10 add score text
- 0.5.11 remove text
- 0.5.12 get grade focus
- 0.5.13 count grade class scores
- 0.6.0 add student health api data
- 0.6.1 count dim field scores
- 0.6.2 count dim field scores 2
- 0.6.3 count student grade
- 0.6.4 count dim field rank
- 0.6.5 count sub unit ids
- 0.7.0 use contextmanager to connect db
- 0.7.1 count score rank with gender
- 0.7.2 add cascade students
- 0.7.3 add is_leaf to cascade students
- 0.7.4 add ch key for dim_field data
- 0.7.5 add ch key for dim_field data
- 0.7.6 add ProvinceHealthApiDataLess for cascade schools
- 0.7.7 add school mht api data
- 0.7.8 optimization student data
- 0.7.9 sort dim field
- 0.8.0 sort dim field
- 0.8.1 sort dim field
- 0.8.2 add global precision
- 0.8.3 add global precision in func
- 0.8.4 fix extra dim/field
- 0.8.5 load less data
- 0.8.7 add mongo params
- 0.8.8 fix
- 0.8.9 log
- 0.9.0 use less item codes to upper
- 0.9.1 add no answers error
- 0.9.2 fix when without gender
- 0.9.3 fix nan
- 0.10.1 add health group data
- 0.10.2 fix grade util
- 0.10.3 student case not need filter is_cleared
- 0.11.0 add assemble data
- 0.11.2 move function
- 0.11.3 sort class
- 0.11.4 add log
- 0.11.5 reload query when query unit failed
- 0.11.6 reload query when query unit failed
- 0.11.7 for xx hawa
- 0.11.8 for xx mht
- 0.11.9 for xx mht archive
- 0.12.1 add new paper test type
- 0.12.2 fix student_id type
- 0.12.3 fix archive grade/class
- 0.13.1 add assemble mht api data
- 0.13.2 divide the answers into 3 parts
- 0.13.3 fix psy source
- 0.13.4 update text
- 0.13.5 add method for rank counts
- 0.13.6 add old test_type
- 0.13.7 add no valid answers error
- 0.13.8 count grade cls gender table for report
- 0.14.1 filter cls less10 students
- 0.14.2 add class count to table
- 0.14.3 update grade periods
- 0.14.4 add default less10 for student
- 0.14.6 get all grade focus
- 0.14.7 move functions
- 0.14.8 get focus recu
- 0.14.9 get focus recu add step
- 0.14.10 set step
- 0.14.11 re order field
- 0.14.12 count 11/33 scores
- 0.14.13 count field/point/target
- 0.14.14 fix
- 0.14.15 add count
- 0.14.16 add page limit
- 0.14.17 fix
- 0.14.18 add prefix
- 0.14.19 fix
- 0.14.20 fix
- 0.14.21 fix
- 0.14.22 fix
- 0.14.23 top3/last3
- 0.14.24 grade/class map
- 0.14.25 unique
- 0.14.26 high/low class
- 0.14.27 add cls rank
- 0.14.30 add cls rank 2
- 0.14.31 add gender score
- 0.14.32 add gender rank
- 0.14.33 add top/last percent
- 0.14.34 add dim/field reverse score
- 0.14.35 fix
- 0.14.36 add gender 33 to grade class map
- 0.14.37 add rank to grade_score
- 0.14.38 add rank 素养
- 0.14.39 add rank 基础
- 0.14.40 add str rank for class
- 0.14.41 add str rank for grade
- 0.14.42 round 素养
- 0.14.43 update code names
- 0.14.44 update code names
- 0.14.45 fix
- 0.14.46 update gender compare text
- 0.14.47 fix grade score rank
- 0.14.48 recount top3/last3
- 0.14.49 upper/lower codes
- 0.14.50 fix
- 0.14.51 fix decimal
- 0.14.52 fix decimal 2
- 0.14.53 fix point/target
- 0.14.54 fix point/target 2
- 0.14.55 update get focus
- 0.14.56 fix precision
- 0.14.57 fix precision 2
- 0.14.58 fix precision 3
- 0.14.59 fix precision 4
- 0.15.1 filter grade match
- 0.15.2 top/bottom3 only desc
- 0.15.3 add points names
- 0.15.4 count all code guides
- 0.15.5 refactor code
- 0.15.6 refactor code
- 0.15.7 refactor text
- 0.15.8 add condition
- 0.15.9 fix grade text des
- 0.15.10 update describe text
- 0.16.1 hawa only count test_type=1
- 0.16.2 fix paper item ids
- 0.16.3 fix error cronbach alpha