schooldigger 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. schooldigger-1.0.0/LICENSE +21 -0
  2. schooldigger-1.0.0/PKG-INFO +93 -0
  3. schooldigger-1.0.0/README.md +63 -0
  4. schooldigger-1.0.0/pyproject.toml +51 -0
  5. schooldigger-1.0.0/schooldigger/__init__.py +115 -0
  6. schooldigger-1.0.0/schooldigger/api/__init__.py +8 -0
  7. schooldigger-1.0.0/schooldigger/api/autocomplete_api.py +823 -0
  8. schooldigger-1.0.0/schooldigger/api/districts_api.py +838 -0
  9. schooldigger-1.0.0/schooldigger/api/rankings_api.py +677 -0
  10. schooldigger-1.0.0/schooldigger/api/schools_api.py +957 -0
  11. schooldigger-1.0.0/schooldigger/api_client.py +809 -0
  12. schooldigger-1.0.0/schooldigger/api_response.py +21 -0
  13. schooldigger-1.0.0/schooldigger/configuration.py +637 -0
  14. schooldigger-1.0.0/schooldigger/exceptions.py +219 -0
  15. schooldigger-1.0.0/schooldigger/models/__init__.py +47 -0
  16. schooldigger-1.0.0/schooldigger/models/api_autocomplete_district_result.py +97 -0
  17. schooldigger-1.0.0/schooldigger/models/api_autocomplete_school_result23.py +97 -0
  18. schooldigger-1.0.0/schooldigger/models/api_boundary12.py +101 -0
  19. schooldigger-1.0.0/schooldigger/models/api_chronic_absenteeism_rate.py +95 -0
  20. schooldigger-1.0.0/schooldigger/models/api_county.py +91 -0
  21. schooldigger-1.0.0/schooldigger/models/api_district_ac.py +113 -0
  22. schooldigger-1.0.0/schooldigger/models/api_district_full21.py +199 -0
  23. schooldigger-1.0.0/schooldigger/models/api_district_list21.py +101 -0
  24. schooldigger-1.0.0/schooldigger/models/api_district_list_rank21.py +109 -0
  25. schooldigger-1.0.0/schooldigger/models/api_district_sum.py +95 -0
  26. schooldigger-1.0.0/schooldigger/models/api_district_summary21.py +149 -0
  27. schooldigger-1.0.0/schooldigger/models/api_dropout_rate.py +95 -0
  28. schooldigger-1.0.0/schooldigger/models/api_graduation_rate.py +95 -0
  29. schooldigger-1.0.0/schooldigger/models/api_lat_long.py +91 -0
  30. schooldigger-1.0.0/schooldigger/models/api_location.py +111 -0
  31. schooldigger-1.0.0/schooldigger/models/api_polyline.py +91 -0
  32. schooldigger-1.0.0/schooldigger/models/api_rank_history.py +101 -0
  33. schooldigger-1.0.0/schooldigger/models/api_school_ac23.py +115 -0
  34. schooldigger-1.0.0/schooldigger/models/api_school_finance.py +103 -0
  35. schooldigger-1.0.0/schooldigger/models/api_school_full22.py +231 -0
  36. schooldigger-1.0.0/schooldigger/models/api_school_list22.py +101 -0
  37. schooldigger-1.0.0/schooldigger/models/api_school_list_rank21.py +107 -0
  38. schooldigger-1.0.0/schooldigger/models/api_school_review.py +95 -0
  39. schooldigger-1.0.0/schooldigger/models/api_school_summary21.py +169 -0
  40. schooldigger-1.0.0/schooldigger/models/api_school_summary22.py +171 -0
  41. schooldigger-1.0.0/schooldigger/models/api_test_score.py +117 -0
  42. schooldigger-1.0.0/schooldigger/models/api_test_score_wrapper.py +121 -0
  43. schooldigger-1.0.0/schooldigger/models/api_yearly_demographics.py +129 -0
  44. schooldigger-1.0.0/schooldigger/models/apilea_rank_history.py +99 -0
  45. schooldigger-1.0.0/schooldigger/models/apilea_yearly_detail.py +131 -0
  46. schooldigger-1.0.0/schooldigger/py.typed +0 -0
  47. schooldigger-1.0.0/schooldigger/rest.py +264 -0
  48. schooldigger-1.0.0/schooldigger.egg-info/PKG-INFO +93 -0
  49. schooldigger-1.0.0/schooldigger.egg-info/SOURCES.txt +85 -0
  50. schooldigger-1.0.0/schooldigger.egg-info/dependency_links.txt +1 -0
  51. schooldigger-1.0.0/schooldigger.egg-info/requires.txt +4 -0
  52. schooldigger-1.0.0/schooldigger.egg-info/top_level.txt +1 -0
  53. schooldigger-1.0.0/setup.cfg +4 -0
  54. schooldigger-1.0.0/test/test_api_autocomplete_district_result.py +67 -0
  55. schooldigger-1.0.0/test/test_api_autocomplete_school_result23.py +68 -0
  56. schooldigger-1.0.0/test/test_api_boundary12.py +58 -0
  57. schooldigger-1.0.0/test/test_api_chronic_absenteeism_rate.py +55 -0
  58. schooldigger-1.0.0/test/test_api_county.py +53 -0
  59. schooldigger-1.0.0/test/test_api_district_ac.py +64 -0
  60. schooldigger-1.0.0/test/test_api_district_full21.py +198 -0
  61. schooldigger-1.0.0/test/test_api_district_list21.py +121 -0
  62. schooldigger-1.0.0/test/test_api_district_list_rank21.py +127 -0
  63. schooldigger-1.0.0/test/test_api_district_sum.py +55 -0
  64. schooldigger-1.0.0/test/test_api_district_summary21.py +116 -0
  65. schooldigger-1.0.0/test/test_api_dropout_rate.py +55 -0
  66. schooldigger-1.0.0/test/test_api_graduation_rate.py +55 -0
  67. schooldigger-1.0.0/test/test_api_lat_long.py +53 -0
  68. schooldigger-1.0.0/test/test_api_location.py +63 -0
  69. schooldigger-1.0.0/test/test_api_polyline.py +53 -0
  70. schooldigger-1.0.0/test/test_api_rank_history.py +58 -0
  71. schooldigger-1.0.0/test/test_api_school_ac23.py +65 -0
  72. schooldigger-1.0.0/test/test_api_school_finance.py +59 -0
  73. schooldigger-1.0.0/test/test_api_school_full22.py +213 -0
  74. schooldigger-1.0.0/test/test_api_school_list22.py +134 -0
  75. schooldigger-1.0.0/test/test_api_school_list_rank21.py +138 -0
  76. schooldigger-1.0.0/test/test_api_school_review.py +55 -0
  77. schooldigger-1.0.0/test/test_api_school_summary21.py +128 -0
  78. schooldigger-1.0.0/test/test_api_school_summary22.py +129 -0
  79. schooldigger-1.0.0/test/test_api_test_score.py +66 -0
  80. schooldigger-1.0.0/test/test_api_test_score_wrapper.py +108 -0
  81. schooldigger-1.0.0/test/test_api_yearly_demographics.py +72 -0
  82. schooldigger-1.0.0/test/test_apilea_rank_history.py +57 -0
  83. schooldigger-1.0.0/test/test_apilea_yearly_detail.py +73 -0
  84. schooldigger-1.0.0/test/test_autocomplete_api.py +46 -0
  85. schooldigger-1.0.0/test/test_districts_api.py +46 -0
  86. schooldigger-1.0.0/test/test_rankings_api.py +46 -0
  87. schooldigger-1.0.0/test/test_schools_api.py +46 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 SchoolDigger
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,93 @@
1
+ Metadata-Version: 2.4
2
+ Name: schooldigger
3
+ Version: 1.0.0
4
+ Summary: Official Python SDK for the SchoolDigger K-12 School Data API
5
+ Author-email: SchoolDigger / Claarware LLC <api@schooldigger.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://developer.schooldigger.com
8
+ Project-URL: Repository, https://github.com/SchoolDigger/schooldigger-python
9
+ Project-URL: Documentation, https://developer.schooldigger.com/docs
10
+ Keywords: schooldigger,schools,education,k-12,api,school data,school rankings,education data
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.8
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Education
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Requires-Python: >=3.8
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: urllib3<3,>=1.25.3
26
+ Requires-Dist: python-dateutil>=2.8.2
27
+ Requires-Dist: pydantic>=2
28
+ Requires-Dist: typing-extensions>=4.7.1
29
+ Dynamic: license-file
30
+
31
+ # SchoolDigger Python SDK
32
+
33
+ Official Python client for the [SchoolDigger API](https://developer.schooldigger.com) — K-12 school data for 120,000+ U.S. schools.
34
+
35
+ ## Installation
36
+
37
+ ```bash
38
+ pip install schooldigger
39
+ ```
40
+
41
+ ## Quick Start
42
+
43
+ ```python
44
+ import schooldigger
45
+
46
+ config = schooldigger.Configuration()
47
+ config.api_key["appID"] = "YOUR_APP_ID"
48
+ config.api_key["appKey"] = "YOUR_APP_KEY"
49
+
50
+ client = schooldigger.ApiClient(config)
51
+
52
+ # Search schools
53
+ api = schooldigger.SchoolsApi(client)
54
+ result = api.search_schools(st="WA", q="Lincoln")
55
+ for school in result.school_list:
56
+ print(f"{school.school_name} — {school.address.city}, {school.address.state}")
57
+
58
+ # Get a specific school by SchoolDigger ID
59
+ school = api.get_school("530966001632")
60
+ print(f"Enrollment: {school.school_yearly_details[0].number_of_students}")
61
+ ```
62
+
63
+ ## API Classes
64
+
65
+ | Class | Methods |
66
+ |-------|---------|
67
+ | `SchoolsApi` | `search_schools()`, `get_school()` |
68
+ | `DistrictsApi` | `search_districts()`, `get_district()` |
69
+ | `RankingsApi` | `get_school_rankings()`, `get_district_rankings()` |
70
+ | `AutocompleteApi` | `autocomplete_schools()`, `autocomplete_districts()` |
71
+
72
+ ## Authentication
73
+
74
+ All API calls require an `appID` and `appKey`. Get your free API key at [developer.schooldigger.com](https://developer.schooldigger.com).
75
+
76
+ ## Documentation
77
+
78
+ - [API Reference](https://developer.schooldigger.com/docs)
79
+ - [Get your free API key](https://developer.schooldigger.com)
80
+ - [SchoolDigger.com](https://www.schooldigger.com)
81
+
82
+ ## Plans
83
+
84
+ | Plan | Price | Highlights |
85
+ |------|-------|------------|
86
+ | DEV/TEST | Free | Enterprise-level access, 20 calls/day |
87
+ | Basic | $19.90/mo | 1 year of data |
88
+ | Pro | $89/mo | Boundaries, geo search, finance |
89
+ | Enterprise | $189/mo | Full depth, boundary containment |
90
+
91
+ ## License
92
+
93
+ MIT
@@ -0,0 +1,63 @@
1
+ # SchoolDigger Python SDK
2
+
3
+ Official Python client for the [SchoolDigger API](https://developer.schooldigger.com) — K-12 school data for 120,000+ U.S. schools.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install schooldigger
9
+ ```
10
+
11
+ ## Quick Start
12
+
13
+ ```python
14
+ import schooldigger
15
+
16
+ config = schooldigger.Configuration()
17
+ config.api_key["appID"] = "YOUR_APP_ID"
18
+ config.api_key["appKey"] = "YOUR_APP_KEY"
19
+
20
+ client = schooldigger.ApiClient(config)
21
+
22
+ # Search schools
23
+ api = schooldigger.SchoolsApi(client)
24
+ result = api.search_schools(st="WA", q="Lincoln")
25
+ for school in result.school_list:
26
+ print(f"{school.school_name} — {school.address.city}, {school.address.state}")
27
+
28
+ # Get a specific school by SchoolDigger ID
29
+ school = api.get_school("530966001632")
30
+ print(f"Enrollment: {school.school_yearly_details[0].number_of_students}")
31
+ ```
32
+
33
+ ## API Classes
34
+
35
+ | Class | Methods |
36
+ |-------|---------|
37
+ | `SchoolsApi` | `search_schools()`, `get_school()` |
38
+ | `DistrictsApi` | `search_districts()`, `get_district()` |
39
+ | `RankingsApi` | `get_school_rankings()`, `get_district_rankings()` |
40
+ | `AutocompleteApi` | `autocomplete_schools()`, `autocomplete_districts()` |
41
+
42
+ ## Authentication
43
+
44
+ All API calls require an `appID` and `appKey`. Get your free API key at [developer.schooldigger.com](https://developer.schooldigger.com).
45
+
46
+ ## Documentation
47
+
48
+ - [API Reference](https://developer.schooldigger.com/docs)
49
+ - [Get your free API key](https://developer.schooldigger.com)
50
+ - [SchoolDigger.com](https://www.schooldigger.com)
51
+
52
+ ## Plans
53
+
54
+ | Plan | Price | Highlights |
55
+ |------|-------|------------|
56
+ | DEV/TEST | Free | Enterprise-level access, 20 calls/day |
57
+ | Basic | $19.90/mo | 1 year of data |
58
+ | Pro | $89/mo | Boundaries, geo search, finance |
59
+ | Enterprise | $189/mo | Full depth, boundary containment |
60
+
61
+ ## License
62
+
63
+ MIT
@@ -0,0 +1,51 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "schooldigger"
7
+ version = "1.0.0"
8
+ description = "Official Python SDK for the SchoolDigger K-12 School Data API"
9
+ readme = "README.md"
10
+ license = {text = "MIT"}
11
+ requires-python = ">=3.8"
12
+ authors = [
13
+ {name = "SchoolDigger / Claarware LLC", email = "api@schooldigger.com"},
14
+ ]
15
+ keywords = [
16
+ "schooldigger",
17
+ "schools",
18
+ "education",
19
+ "k-12",
20
+ "api",
21
+ "school data",
22
+ "school rankings",
23
+ "education data",
24
+ ]
25
+ classifiers = [
26
+ "Development Status :: 4 - Beta",
27
+ "Intended Audience :: Developers",
28
+ "License :: OSI Approved :: MIT License",
29
+ "Programming Language :: Python :: 3",
30
+ "Programming Language :: Python :: 3.8",
31
+ "Programming Language :: Python :: 3.9",
32
+ "Programming Language :: Python :: 3.10",
33
+ "Programming Language :: Python :: 3.11",
34
+ "Programming Language :: Python :: 3.12",
35
+ "Topic :: Education",
36
+ "Topic :: Software Development :: Libraries :: Python Modules",
37
+ ]
38
+ dependencies = [
39
+ "urllib3>=1.25.3,<3",
40
+ "python-dateutil>=2.8.2",
41
+ "pydantic>=2",
42
+ "typing-extensions>=4.7.1",
43
+ ]
44
+
45
+ [project.urls]
46
+ Homepage = "https://developer.schooldigger.com"
47
+ Repository = "https://github.com/SchoolDigger/schooldigger-python"
48
+ Documentation = "https://developer.schooldigger.com/docs"
49
+
50
+ [tool.setuptools.packages.find]
51
+ include = ["schooldigger*"]
@@ -0,0 +1,115 @@
1
+ # coding: utf-8
2
+
3
+ # flake8: noqa
4
+
5
+ """
6
+ SchoolDigger API
7
+
8
+ K-12 school and district data for 120,000+ U.S. schools
9
+
10
+ The version of the OpenAPI document: v2.3
11
+ Contact: api@schooldigger.com
12
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
13
+
14
+ Do not edit the class manually.
15
+ """ # noqa: E501
16
+
17
+
18
+ __version__ = "1.0.0"
19
+
20
+ # Define package exports
21
+ __all__ = [
22
+ "AutocompleteApi",
23
+ "DistrictsApi",
24
+ "RankingsApi",
25
+ "SchoolsApi",
26
+ "ApiResponse",
27
+ "ApiClient",
28
+ "Configuration",
29
+ "OpenApiException",
30
+ "ApiTypeError",
31
+ "ApiValueError",
32
+ "ApiKeyError",
33
+ "ApiAttributeError",
34
+ "ApiException",
35
+ "APIAutocompleteDistrictResult",
36
+ "APIAutocompleteSchoolResult23",
37
+ "APIBoundary12",
38
+ "APIChronicAbsenteeismRate",
39
+ "APICounty",
40
+ "APIDistrictAC",
41
+ "APIDistrictFull21",
42
+ "APIDistrictList21",
43
+ "APIDistrictListRank21",
44
+ "APIDistrictSum",
45
+ "APIDistrictSummary21",
46
+ "APIDropoutRate",
47
+ "APIGraduationRate",
48
+ "APILEARankHistory",
49
+ "APILEAYearlyDetail",
50
+ "APILatLong",
51
+ "APILocation",
52
+ "APIPolyline",
53
+ "APIRankHistory",
54
+ "APISchoolAC23",
55
+ "APISchoolFinance",
56
+ "APISchoolFull22",
57
+ "APISchoolList22",
58
+ "APISchoolListRank21",
59
+ "APISchoolReview",
60
+ "APISchoolSummary21",
61
+ "APISchoolSummary22",
62
+ "APITestScore",
63
+ "APITestScoreWrapper",
64
+ "APIYearlyDemographics",
65
+ ]
66
+
67
+ # import apis into sdk package
68
+ from schooldigger.api.autocomplete_api import AutocompleteApi as AutocompleteApi
69
+ from schooldigger.api.districts_api import DistrictsApi as DistrictsApi
70
+ from schooldigger.api.rankings_api import RankingsApi as RankingsApi
71
+ from schooldigger.api.schools_api import SchoolsApi as SchoolsApi
72
+
73
+ # import ApiClient
74
+ from schooldigger.api_response import ApiResponse as ApiResponse
75
+ from schooldigger.api_client import ApiClient as ApiClient
76
+ from schooldigger.configuration import Configuration as Configuration
77
+ from schooldigger.exceptions import OpenApiException as OpenApiException
78
+ from schooldigger.exceptions import ApiTypeError as ApiTypeError
79
+ from schooldigger.exceptions import ApiValueError as ApiValueError
80
+ from schooldigger.exceptions import ApiKeyError as ApiKeyError
81
+ from schooldigger.exceptions import ApiAttributeError as ApiAttributeError
82
+ from schooldigger.exceptions import ApiException as ApiException
83
+
84
+ # import models into sdk package
85
+ from schooldigger.models.api_autocomplete_district_result import APIAutocompleteDistrictResult as APIAutocompleteDistrictResult
86
+ from schooldigger.models.api_autocomplete_school_result23 import APIAutocompleteSchoolResult23 as APIAutocompleteSchoolResult23
87
+ from schooldigger.models.api_boundary12 import APIBoundary12 as APIBoundary12
88
+ from schooldigger.models.api_chronic_absenteeism_rate import APIChronicAbsenteeismRate as APIChronicAbsenteeismRate
89
+ from schooldigger.models.api_county import APICounty as APICounty
90
+ from schooldigger.models.api_district_ac import APIDistrictAC as APIDistrictAC
91
+ from schooldigger.models.api_district_full21 import APIDistrictFull21 as APIDistrictFull21
92
+ from schooldigger.models.api_district_list21 import APIDistrictList21 as APIDistrictList21
93
+ from schooldigger.models.api_district_list_rank21 import APIDistrictListRank21 as APIDistrictListRank21
94
+ from schooldigger.models.api_district_sum import APIDistrictSum as APIDistrictSum
95
+ from schooldigger.models.api_district_summary21 import APIDistrictSummary21 as APIDistrictSummary21
96
+ from schooldigger.models.api_dropout_rate import APIDropoutRate as APIDropoutRate
97
+ from schooldigger.models.api_graduation_rate import APIGraduationRate as APIGraduationRate
98
+ from schooldigger.models.apilea_rank_history import APILEARankHistory as APILEARankHistory
99
+ from schooldigger.models.apilea_yearly_detail import APILEAYearlyDetail as APILEAYearlyDetail
100
+ from schooldigger.models.api_lat_long import APILatLong as APILatLong
101
+ from schooldigger.models.api_location import APILocation as APILocation
102
+ from schooldigger.models.api_polyline import APIPolyline as APIPolyline
103
+ from schooldigger.models.api_rank_history import APIRankHistory as APIRankHistory
104
+ from schooldigger.models.api_school_ac23 import APISchoolAC23 as APISchoolAC23
105
+ from schooldigger.models.api_school_finance import APISchoolFinance as APISchoolFinance
106
+ from schooldigger.models.api_school_full22 import APISchoolFull22 as APISchoolFull22
107
+ from schooldigger.models.api_school_list22 import APISchoolList22 as APISchoolList22
108
+ from schooldigger.models.api_school_list_rank21 import APISchoolListRank21 as APISchoolListRank21
109
+ from schooldigger.models.api_school_review import APISchoolReview as APISchoolReview
110
+ from schooldigger.models.api_school_summary21 import APISchoolSummary21 as APISchoolSummary21
111
+ from schooldigger.models.api_school_summary22 import APISchoolSummary22 as APISchoolSummary22
112
+ from schooldigger.models.api_test_score import APITestScore as APITestScore
113
+ from schooldigger.models.api_test_score_wrapper import APITestScoreWrapper as APITestScoreWrapper
114
+ from schooldigger.models.api_yearly_demographics import APIYearlyDemographics as APIYearlyDemographics
115
+
@@ -0,0 +1,8 @@
1
+ # flake8: noqa
2
+
3
+ # import apis into api package
4
+ from schooldigger.api.autocomplete_api import AutocompleteApi
5
+ from schooldigger.api.districts_api import DistrictsApi
6
+ from schooldigger.api.rankings_api import RankingsApi
7
+ from schooldigger.api.schools_api import SchoolsApi
8
+