django-bom 1.237__py3-none-any.whl

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 (183) hide show
  1. bom/__init__.py +1 -0
  2. bom/admin.py +161 -0
  3. bom/apps.py +8 -0
  4. bom/base_classes.py +31 -0
  5. bom/constants.py +210 -0
  6. bom/context_processors.py +9 -0
  7. bom/csv_headers.py +274 -0
  8. bom/decorators.py +32 -0
  9. bom/form_fields.py +59 -0
  10. bom/forms.py +1400 -0
  11. bom/helpers.py +292 -0
  12. bom/local_settings.py +35 -0
  13. bom/migrations/0001_initial.py +135 -0
  14. bom/migrations/0002_auto_20180908_2151.py +24 -0
  15. bom/migrations/0003_sellerpart_data_source.py +18 -0
  16. bom/migrations/0004_auto_20180911_0011.py +18 -0
  17. bom/migrations/0005_auto_20181007_1934.py +56 -0
  18. bom/migrations/0006_auto_20181007_1949.py +41 -0
  19. bom/migrations/0007_auto_20181009_0256.py +19 -0
  20. bom/migrations/0008_auto_20181030_0427.py +19 -0
  21. bom/migrations/0009_subpart_reference.py +18 -0
  22. bom/migrations/0010_auto_20181202_0733.py +23 -0
  23. bom/migrations/0011_auto_20181202_2113.py +22 -0
  24. bom/migrations/0012_partchangehistory.py +30 -0
  25. bom/migrations/0013_auto_20190222_1631.py +19 -0
  26. bom/migrations/0014_auto_20190223_2353.py +18 -0
  27. bom/migrations/0015_auto_20190303_1915.py +136 -0
  28. bom/migrations/0016_auto_20190405_2308.py +58 -0
  29. bom/migrations/0017_auto_20190616_1912.py +19 -0
  30. bom/migrations/0018_auto_20190616_2143.py +24 -0
  31. bom/migrations/0019_auto_20190624_1246.py +45 -0
  32. bom/migrations/0020_auto_20190627_0207.py +38 -0
  33. bom/migrations/0021_auto_20190627_0428.py +23 -0
  34. bom/migrations/0022_auto_20190811_2140.py +35 -0
  35. bom/migrations/0023_auto_20191205_2351.py +255 -0
  36. bom/migrations/0024_auto_20191214_1342.py +89 -0
  37. bom/migrations/0025_auto_20191221_1907.py +38 -0
  38. bom/migrations/0026_auto_20191222_2258.py +22 -0
  39. bom/migrations/0027_auto_20191222_2347.py +17 -0
  40. bom/migrations/0028_partrevision_displayable_synopsis.py +74 -0
  41. bom/migrations/0029_auto_20191231_1630.py +23 -0
  42. bom/migrations/0030_auto_20200101_2253.py +22 -0
  43. bom/migrations/0031_auto_20200104_1352.py +38 -0
  44. bom/migrations/0032_auto_20200126_1806.py +27 -0
  45. bom/migrations/0033_auto_20200203_0618.py +29 -0
  46. bom/migrations/0034_auto_20200222_0359.py +30 -0
  47. bom/migrations/0035_auto_20200303_0111.py +34 -0
  48. bom/migrations/0036_auto_20200303_0538.py +17 -0
  49. bom/migrations/0037_auto_20200405_1642.py +44 -0
  50. bom/migrations/0038_auto_20200422_0504.py +19 -0
  51. bom/migrations/0039_auto_20200929_2315.py +41 -0
  52. bom/migrations/0040_alter_organization_currency.py +19 -0
  53. bom/migrations/0041_organization_subscription_quantity.py +18 -0
  54. bom/migrations/0042_auto_20210720_2137.py +23 -0
  55. bom/migrations/0043_auto_20211123_0157.py +24 -0
  56. bom/migrations/0044_auto_20220831_1241.py +23 -0
  57. bom/migrations/0045_sellerpart_link.py +18 -0
  58. bom/migrations/0046_alter_sellerpart_unique_together.py +17 -0
  59. bom/migrations/0047_sellerpart_seller_part_number.py +18 -0
  60. bom/migrations/0048_rename_part_organization_number_class_bom_part_organiz_b333d6_idx_and_more.py +1017 -0
  61. bom/migrations/0049_alter_assembly_id_alter_assemblysubparts_id_and_more.py +99 -0
  62. bom/migrations/__init__.py +0 -0
  63. bom/models.py +757 -0
  64. bom/part_bom.py +192 -0
  65. bom/settings.py +264 -0
  66. bom/static/bom/css/dashboard.css +17 -0
  67. bom/static/bom/css/jquery.treetable.css +28 -0
  68. bom/static/bom/css/materialize.min.css +13 -0
  69. bom/static/bom/css/part-info.css +15 -0
  70. bom/static/bom/css/style.css +319 -0
  71. bom/static/bom/css/tablesorter-theme.materialize.css +176 -0
  72. bom/static/bom/css/treetable-theme.css +42 -0
  73. bom/static/bom/doc/sample_part_classes.csv +38 -0
  74. bom/static/bom/doc/test_bom.csv +6 -0
  75. bom/static/bom/doc/test_bom_5_intelligent.csv +4 -0
  76. bom/static/bom/doc/test_full_bom.csv +37 -0
  77. bom/static/bom/doc/test_new_parts.csv +5 -0
  78. bom/static/bom/doc/test_new_parts_5_intelligent.csv +5 -0
  79. bom/static/bom/img/_ionicons_svg_md-arrow-dropdown.svg +1 -0
  80. bom/static/bom/img/_ionicons_svg_md-arrow-dropright.svg +1 -0
  81. bom/static/bom/img/favicon.ico +0 -0
  82. bom/static/bom/img/google/web/1x/btn_google_signin_dark_disabled_web.png +0 -0
  83. bom/static/bom/img/google/web/1x/btn_google_signin_dark_focus_web.png +0 -0
  84. bom/static/bom/img/google/web/1x/btn_google_signin_dark_normal_web.png +0 -0
  85. bom/static/bom/img/google/web/1x/btn_google_signin_dark_pressed_web.png +0 -0
  86. bom/static/bom/img/google/web/1x/btn_google_signin_light_disabled_web.png +0 -0
  87. bom/static/bom/img/google/web/1x/btn_google_signin_light_focus_web.png +0 -0
  88. bom/static/bom/img/google/web/1x/btn_google_signin_light_normal_web.png +0 -0
  89. bom/static/bom/img/google/web/1x/btn_google_signin_light_pressed_web.png +0 -0
  90. bom/static/bom/img/google/web/2x/btn_google_signin_dark_disabled_web@2x.png +0 -0
  91. bom/static/bom/img/google/web/2x/btn_google_signin_dark_focus_web@2x.png +0 -0
  92. bom/static/bom/img/google/web/2x/btn_google_signin_dark_normal_web@2x.png +0 -0
  93. bom/static/bom/img/google/web/2x/btn_google_signin_dark_pressed_web@2x.png +0 -0
  94. bom/static/bom/img/google/web/2x/btn_google_signin_light_disabled_web@2x.png +0 -0
  95. bom/static/bom/img/google/web/2x/btn_google_signin_light_focus_web@2x.png +0 -0
  96. bom/static/bom/img/google/web/2x/btn_google_signin_light_normal_web@2x.png +0 -0
  97. bom/static/bom/img/google/web/2x/btn_google_signin_light_pressed_web@2x.png +0 -0
  98. bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.eps +814 -0
  99. bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.svg +24 -0
  100. bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.eps +1866 -0
  101. bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.svg +51 -0
  102. bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.eps +1031 -0
  103. bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.svg +50 -0
  104. bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.eps +1031 -0
  105. bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.svg +50 -0
  106. bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.eps +814 -0
  107. bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.svg +24 -0
  108. bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.eps +1837 -0
  109. bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.svg +44 -0
  110. bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.eps +1002 -0
  111. bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.svg +43 -0
  112. bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.eps +1002 -0
  113. bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.svg +43 -0
  114. bom/static/bom/img/google_drive_logo.svg +1 -0
  115. bom/static/bom/img/indabom.png +0 -0
  116. bom/static/bom/img/mouser.png +0 -0
  117. bom/static/bom/img/octopart_blue.svg +19 -0
  118. bom/static/bom/js/jquery-3.4.1.min.js +2 -0
  119. bom/static/bom/js/jquery.ba-floatingscrollbar.min.js +10 -0
  120. bom/static/bom/js/jquery.treetable.js +629 -0
  121. bom/static/bom/js/materialize.min.js +6 -0
  122. bom/templates/bom/account-delete.html +23 -0
  123. bom/templates/bom/add-manufacturer-part.html +66 -0
  124. bom/templates/bom/add-sellerpart.html +93 -0
  125. bom/templates/bom/base-menu.html +16 -0
  126. bom/templates/bom/base.html +129 -0
  127. bom/templates/bom/bom-action-btn.html +23 -0
  128. bom/templates/bom/bom-action-table.html +57 -0
  129. bom/templates/bom/bom-base-menu.html +6 -0
  130. bom/templates/bom/bom-base.html +24 -0
  131. bom/templates/bom/bom-form-modal.html +36 -0
  132. bom/templates/bom/bom-form.html +30 -0
  133. bom/templates/bom/bom-signup.html +12 -0
  134. bom/templates/bom/components/bom-flat.html +131 -0
  135. bom/templates/bom/components/bom-indented.html +237 -0
  136. bom/templates/bom/components/manufacturer-part-list.html +270 -0
  137. bom/templates/bom/components/seller-part-list.html +62 -0
  138. bom/templates/bom/create-part.html +65 -0
  139. bom/templates/bom/dashboard-menu.html +15 -0
  140. bom/templates/bom/dashboard.html +303 -0
  141. bom/templates/bom/edit-manufacturer-part.html +72 -0
  142. bom/templates/bom/edit-part-class.html +33 -0
  143. bom/templates/bom/edit-part.html +67 -0
  144. bom/templates/bom/edit-user-meta.html +38 -0
  145. bom/templates/bom/help.html +1356 -0
  146. bom/templates/bom/manufacturer-info.html +82 -0
  147. bom/templates/bom/manufacturers.html +97 -0
  148. bom/templates/bom/nothing-to-see.html +15 -0
  149. bom/templates/bom/organization-create.html +132 -0
  150. bom/templates/bom/part-info.html +439 -0
  151. bom/templates/bom/part-revision-display.html +184 -0
  152. bom/templates/bom/part-revision-edit.html +39 -0
  153. bom/templates/bom/part-revision-manage-bom.html +115 -0
  154. bom/templates/bom/part-revision-new.html +57 -0
  155. bom/templates/bom/part-revision-release.html +41 -0
  156. bom/templates/bom/search-help.html +101 -0
  157. bom/templates/bom/seller-info.html +82 -0
  158. bom/templates/bom/sellers.html +97 -0
  159. bom/templates/bom/settings.html +408 -0
  160. bom/templates/bom/signup.html +28 -0
  161. bom/templates/bom/table_of_contents.html +47 -0
  162. bom/templates/bom/upload-bom.html +111 -0
  163. bom/templates/bom/upload-parts-help.html +103 -0
  164. bom/templates/bom/upload-parts.html +50 -0
  165. bom/templates/registration/login.html +39 -0
  166. bom/tests.py +1506 -0
  167. bom/third_party_apis/__init__.py +0 -0
  168. bom/third_party_apis/base_api.py +51 -0
  169. bom/third_party_apis/google_drive.py +166 -0
  170. bom/third_party_apis/mouser.py +132 -0
  171. bom/third_party_apis/test_apis.py +24 -0
  172. bom/urls.py +94 -0
  173. bom/utils.py +228 -0
  174. bom/validators.py +23 -0
  175. bom/views/__init__.py +0 -0
  176. bom/views/json_views.py +55 -0
  177. bom/views/views.py +1620 -0
  178. bom/wsgi.py +16 -0
  179. django_bom-1.237.dist-info/METADATA +206 -0
  180. django_bom-1.237.dist-info/RECORD +183 -0
  181. django_bom-1.237.dist-info/WHEEL +5 -0
  182. django_bom-1.237.dist-info/licenses/LICENSE +674 -0
  183. django_bom-1.237.dist-info/top_level.txt +1 -0
bom/wsgi.py ADDED
@@ -0,0 +1,16 @@
1
+ """
2
+ WSGI config for bom app.
3
+
4
+ It exposes the WSGI callable as a module-level variable named ``application``.
5
+
6
+ For more information on this file, see
7
+ https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/
8
+ """
9
+
10
+ import os
11
+
12
+ from django.core.wsgi import get_wsgi_application
13
+
14
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bom.settings")
15
+
16
+ application = get_wsgi_application()
@@ -0,0 +1,206 @@
1
+ Metadata-Version: 2.4
2
+ Name: django-bom
3
+ Version: 1.237
4
+ Summary: A simple Django app to manage a bill of materials.
5
+ Author-email: Mike Kasparian <mpkasp@gmail.com>
6
+ License: GPL-3.0-only
7
+ Project-URL: Homepage, https://www.indabom.com/
8
+ Classifier: Environment :: Web Environment
9
+ Classifier: Framework :: Django
10
+ Classifier: Framework :: Django :: 5
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3 :: Only
20
+ Classifier: Topic :: Internet :: WWW/HTTP
21
+ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: Django<5.3,>=5.2
26
+ Requires-Dist: social-auth-app-django<6,>=5
27
+ Requires-Dist: social-auth-core<6,>=4
28
+ Requires-Dist: google-api-python-client>=2
29
+ Requires-Dist: django-materializecss-form
30
+ Requires-Dist: django-money<5,>=3
31
+ Dynamic: license-file
32
+
33
+ # BOM
34
+ ![](https://github.com/mpkasp/django-bom/workflows/Django%20CI/badge.svg)
35
+
36
+ BOM is a simple Django app to manage a bill of materials. It supports multiple part numbering schemes, tracking component sourcing information, estimates costs, and contains smart integrations with Mouser to pull in the latest component pricing and Google Drive for part file management. BOM is written in Python 3 and Django 3.
37
+
38
+ [See a live example](https://www.indabom.com).
39
+
40
+ BOM can be added to an existing (or new) Django project, or stand alone on its own, which can be more convenient if you're interested in tweaking the tool.
41
+
42
+ If you already have a django project, you can skip to [Add Django Bom To Your App](#add-django-bom-to-your-app), otherwise [Start From Scratch: Add to new Django project](#start-from-scratch-add-to-a-new-django-project) to add it to a new django project, or [Start From Scratch: Use as standalone Django project](#start-from-scratch-use-as-a-standalone-django-project).
43
+
44
+ ## Table of contents
45
+ * [Start From Scratch: Add to new Django project](#start-from-scratch-add-to-a-new-django-project)
46
+ * [Add Django Bom To Your App](#add-django-bom-to-your-app)
47
+ * [Start From Scratch: Use as standalone Django project](#start-from-scratch-use-as-a-standalone-django-project)
48
+ * [Customize Base Template](#customize-base-template)
49
+ * [Integrations](#integrations)
50
+ * [Contributing](#contributing)
51
+ * [Installation pitfalls](#installation-pitfalls)
52
+
53
+ ## Start From Scratch: Add to a new Django project
54
+ 1. To start from scratch, install your pipenv using Python 3.12
55
+ ```
56
+ pipenv --python 3.12
57
+ pipenv shell
58
+ ```
59
+
60
+ 2. From here install django, and set up your project.
61
+ ```
62
+ pipenv install django
63
+ django-admin startproject mysite
64
+ cd mysite
65
+ python manage.py migrate
66
+ python manage.py createsuperuser # make a user for your development environment
67
+ ```
68
+
69
+ 3. Continue on to [Add Django Bom To Your App](#add-django-bom-to-your-app).
70
+
71
+ ## Add Django Bom To Your App
72
+ django-bom is a [reusable django application](https://docs.djangoproject.com/en/1.11/intro/reusable-apps/). If you don't already have a django project, you can follow some quick steps below to get up and running, or read about creating your first django app [here](https://docs.djangoproject.com/en/1.11/intro/tutorial01/).
73
+
74
+ ```
75
+ pip install django-bom
76
+ ```
77
+
78
+ 1. Add "bom" to your INSTALLED_APPS setting like this::
79
+
80
+ ```
81
+ INSTALLED_APPS = [
82
+ ...
83
+ 'bom',
84
+ 'social_django', # to enable google drive sync in bom
85
+ 'djmoney', # for currency
86
+ 'djmoney.contrib.exchange', # for currency
87
+ 'materializecssform',
88
+ ]
89
+ ```
90
+
91
+ 2. Update your URLconf in your project urls.py like this::
92
+
93
+ ```
94
+ path('bom/', include('bom.urls')),
95
+ ```
96
+
97
+ And don't forget to import include:
98
+
99
+ ```
100
+ from django.conf.urls import include
101
+ ```
102
+
103
+ 3. Update your settings.py to add the bom context processor `'bom.context_processors.bom_config',` to your TEMPLATES variable, and create a new empty dictionary BOM_CONFIG.
104
+
105
+ ```
106
+ TEMPLATES = [
107
+ {
108
+ ...
109
+ 'OPTIONS': {
110
+ 'context_processors': [
111
+ ...
112
+ 'bom.context_processors.bom_config',
113
+ ],
114
+ },
115
+ },
116
+ ]
117
+ ```
118
+
119
+ and
120
+
121
+ ```
122
+ BOM_CONFIG = {'standalone_mode': False}
123
+ ```
124
+
125
+ 4. Run `python manage.py migrate` to create the bom models.
126
+
127
+ 5. Start the development server `python manage.py runserver` and visit http://127.0.0.1:8000/admin/
128
+ to manage the bom (you'll need the Admin app enabled).
129
+
130
+ 6. Visit http://127.0.0.1:8000/bom/ to begin.
131
+
132
+
133
+ ## Start From Scratch: Use as a standalone Django project
134
+ 1. To start from scratch we recommend setting up a virtual environment
135
+ ```
136
+ virtualenv -p python3 mysite
137
+ cd mysite
138
+ source bin/activate
139
+ ```
140
+
141
+ 2. From here install django, and set up your project.
142
+ ```
143
+ git clone https://github.com/mpkasp/django-bom.git
144
+ pipenv install
145
+ python manage.py migrate
146
+ cp bom/local_settings.py.example bom/local_settings.py
147
+ python manage.py runserver
148
+ ```
149
+
150
+ ## Customize Base Template
151
+ The base template can be customized to your pleasing. Just add the following configuration to your settings.py:
152
+
153
+ ```
154
+ BOM_CONFIG = {
155
+ 'base_template': 'base.html',
156
+ }
157
+ ```
158
+
159
+ where `base.html` is your base template.
160
+
161
+ ## Integrations
162
+ ### Mouser Integration
163
+ For part matching, make sure to add your Mouser api key. You can get your key [here](https://www.mouser.com/MyMouser/MouserSearchApplication.aspx).
164
+
165
+ ### Google Drive Integration
166
+ Make sure to add the following to your settings.py:
167
+ ```
168
+ AUTHENTICATION_BACKENDS = (
169
+ 'social_core.backends.google.GoogleOpenId',
170
+ 'social_core.backends.google.GoogleOAuth2',
171
+ 'social_core.backends.google.GoogleOAuth',
172
+ 'django.contrib.auth.backends.ModelBackend',
173
+ )
174
+
175
+ SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = ['email', 'profile', 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/plus.login']
176
+ SOCIAL_AUTH_GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS = {
177
+ 'access_type': 'offline',
178
+ 'approval_prompt': 'auto'
179
+ }
180
+ ```
181
+ And if you're using https on production add:
182
+ ```
183
+ SOCIAL_AUTH_REDIRECT_IS_HTTPS = not DEBUG
184
+ ```
185
+
186
+ ### FIXER
187
+ Fixer.io is used to handle exchange rate calculations. This is helpful if you may be purchasing parts from another currency (especially via Mouser) and you still need to estimate your part costs.
188
+
189
+ To set this up you just need to add your API key to local_settings.py as shown in the example.
190
+
191
+ To update rates, migrate and run `python manage.py update_rates`. Some day we will need to add a (celerybeat?) task to update rates on a schedule. Explained more [here](https://github.com/django-money/django-money#working-with-exchange-rates).
192
+
193
+ ## Contributing
194
+
195
+ Contributions welcome! Before contributing your work please read the [contributing readme](https://github.com/mpkasp/django-bom/blob/master/CONTRIBUTING.md).
196
+
197
+ Also reach out to mike@indabom.com to discuss features, and join our slack channel.
198
+
199
+ ## Installation Pitfalls
200
+
201
+ ### Windows
202
+ #### Sqlite
203
+ You may get an error during your `pip install -r requirements.txt` related to sqlite. This may be fixed by installing Visual C++ for python...
204
+
205
+ #### Cryptography
206
+ Sometimes you'll have issues installing cryptography, if this is the case you may just need to set up some environment variables. This [stackoverflow](https://stackoverflow.com/questions/46288737/error-while-installing-sqlite-using-pip-on-python-2-7-13) may help.
@@ -0,0 +1,183 @@
1
+ bom/__init__.py,sha256=HuvSMR9cYQcppTZGD0XjUVUBtHWwWMh1yMQzk_2wTS4,41
2
+ bom/admin.py,sha256=4xN38uSIGo54MVoo2MXUbvcfuPSAifDc8g0arrEAW4Q,4093
3
+ bom/apps.py,sha256=TJMUTSX1h2genPwCq6SN6g1fhrrSmjEXGg2zQFa_ryM,147
4
+ bom/base_classes.py,sha256=CrWD7wlIkwYb90VoGcVOcw2WoQszRrCje-Re5d_UW1Q,1183
5
+ bom/constants.py,sha256=5CFE0uvKTL91w24rqdAB6EMgpIyw0HhfmmktxF4gCgs,4296
6
+ bom/context_processors.py,sha256=OxMVCqxGtRoHR7aJfTs6xANpxJQzBDUIuNTG1f_Xjoo,312
7
+ bom/csv_headers.py,sha256=1VDJ7aNqYjDhf5_rfWBZqO6wsIS99oD01yXx2nNmIHQ,12620
8
+ bom/decorators.py,sha256=fCK-lxJTBp3LEdZtKMyQg5hRqxQm5RJny9eb7oyjbtE,1233
9
+ bom/form_fields.py,sha256=tLqchl0j8izBCZnm82NMyHpQV6EuGgCjCl5lrnGR2V0,2816
10
+ bom/forms.py,sha256=RUwiMKeaQkapBwz6JCi4Kkl4e5DlFAgSEMjytEDzmoE,69302
11
+ bom/helpers.py,sha256=ONsDM0agG9sKJWMjN4IRNlWx2HNF7T0CXM-ts0GRiAY,15031
12
+ bom/local_settings.py,sha256=yE4aupIquCWsFms44qoCrRrlIyM3sqpOkiwyj1WLxI8,820
13
+ bom/models.py,sha256=nCh2EOJeLL9eJ8CbgfDklBwucVRRsfWDR5cHqS7ZJw4,37088
14
+ bom/part_bom.py,sha256=30HYAKAEhtadiM9tk6vgCQnn7gNJeuXbzF5gXvMvKG4,8720
15
+ bom/settings.py,sha256=jUuy7cKuz9gbZ301L0skMFrnU6qKaBpRUf-rHsTTYJM,8387
16
+ bom/tests.py,sha256=ZqcTUYVXeWjAqzKAV6hp6SKTU0_IOTwIEboTujl7N_M,69905
17
+ bom/urls.py,sha256=sGNKO8BsTO_TDPsqB-c_fqRozaNHOf9WYRaOy-7OLAE,6841
18
+ bom/utils.py,sha256=z_2jACSkRc0hsc0mdR8tOK10KiSDeM0a6rXIpztPDuA,7302
19
+ bom/validators.py,sha256=tiQYIblITCOwb8m1kfs_CFmFnJofCtFzqENlxBuGL7Y,872
20
+ bom/wsgi.py,sha256=-2oAfSSVdNFCjxaKXcPp-JL_K8AhVClzls6OC_ZI1Jc,380
21
+ bom/migrations/0001_initial.py,sha256=yzoGfeDM4NCpiV46puaHH663O-UdRHw8o-m7kP-DV0s,7005
22
+ bom/migrations/0002_auto_20180908_2151.py,sha256=_UCeo1iAKAPRopOoOuCiYjBkTQhKri_hj157k43efjg,753
23
+ bom/migrations/0003_sellerpart_data_source.py,sha256=vgACBfhmHPBC4pxDJlaW8AUAfxLZ4tmxfZuAYXSMDAc,414
24
+ bom/migrations/0004_auto_20180911_0011.py,sha256=ujMXUzDjGAWW63ncwYXVL4T-sGDZYzGIhhXJkPRM0HI,432
25
+ bom/migrations/0005_auto_20181007_1934.py,sha256=d4vCIaMTN6EX2uG5Z3z0_HhNkJIhRlKf2soBNvtFrgA,2402
26
+ bom/migrations/0006_auto_20181007_1949.py,sha256=5TS_A7jOipF_MPaoHNGGDkq_zgWtx0YdBmTnLIY0avE,1249
27
+ bom/migrations/0007_auto_20181009_0256.py,sha256=e-s5k7ftrTut58JgOCWCpZRJ290HtH9nT4QTeoAFnBc,569
28
+ bom/migrations/0008_auto_20181030_0427.py,sha256=KlxyShpI1GKP1IPUzwg7uP4P0RWb78UoYXoyIbt-5xI,570
29
+ bom/migrations/0009_subpart_reference.py,sha256=Jw1cAphGpz2F_y4A_EmhDc5Zqedrw2oq8s_6mHd8Hjc,404
30
+ bom/migrations/0010_auto_20181202_0733.py,sha256=PuCsIO6peJ5SER91DGrLhVY_90EUHSOOQnxEmDsQlUI,632
31
+ bom/migrations/0011_auto_20181202_2113.py,sha256=OWYRifpNULzM56PSVuL_Vd9YViVVugudDInLzdWjFl8,555
32
+ bom/migrations/0012_partchangehistory.py,sha256=Mm9U5jAylyvSMQE8TGr-IROauOZ0B8C3QHyCureoYag,1511
33
+ bom/migrations/0013_auto_20190222_1631.py,sha256=WqBge3uHZMWUYTYOD-DEy2TPH1k9OtI3nsXbwHmwMtI,472
34
+ bom/migrations/0014_auto_20190223_2353.py,sha256=N1jaNW47nb_tEneTqnps9gJccmYigeGhNnMJHTUSP_M,369
35
+ bom/migrations/0015_auto_20190303_1915.py,sha256=PIKz2LtpYghWBTAY6wLIWDQmNOsZ7pkmBaOgYmvY4VM,4673
36
+ bom/migrations/0016_auto_20190405_2308.py,sha256=3ssG9Bf5yHpHNLUDpo8tWVth60T432SephEoCPp0P7E,1800
37
+ bom/migrations/0017_auto_20190616_1912.py,sha256=lAoKaT7SGTmAcgKRyybOzo6rsPJwxhtGcQkxRRZ9EqQ,401
38
+ bom/migrations/0018_auto_20190616_2143.py,sha256=oNyoFF9Vtg6qLcexFDNULcMtqMlh8yjbZohCe_zPnqk,688
39
+ bom/migrations/0019_auto_20190624_1246.py,sha256=hB2u2bEzpQmLlU_8XBtzlrNaA13yykS1jZmD5SbyTOY,1590
40
+ bom/migrations/0020_auto_20190627_0207.py,sha256=3I6_tHZ1oX056dsqjlnR18Tq3J7qSCtDKYyUgpob8hQ,1147
41
+ bom/migrations/0021_auto_20190627_0428.py,sha256=wP6sfMyLWEglVZhhKbAWUqYy5TOVvrWbHKpPkPhSvQU,625
42
+ bom/migrations/0022_auto_20190811_2140.py,sha256=D3i_CDWK7xoSe2ZSR7Iry9ETn7rr_maQyr6KUgWkcdc,1025
43
+ bom/migrations/0023_auto_20191205_2351.py,sha256=VA9r9NezHN9NcUg2J2V98fo9Xcfzu4ohVFMxQgTNzwk,12891
44
+ bom/migrations/0024_auto_20191214_1342.py,sha256=4oHE8w7_DDHyyHxab3S05ysIk_5GcBGqVuUpDIZS0gs,5259
45
+ bom/migrations/0025_auto_20191221_1907.py,sha256=PF3s6gLPdGSk0Xuj34TBYZsTTRrU-71qWfLcisXKLeI,1888
46
+ bom/migrations/0026_auto_20191222_2258.py,sha256=U_TIBBmccMgYIhaVWeVEYdvFU_1ZhGORuGtEYzOOxcY,606
47
+ bom/migrations/0027_auto_20191222_2347.py,sha256=_RDQXgNdsOn55Mie5pTcFD_RSpukRiBMsbMU48URW_k,356
48
+ bom/migrations/0028_partrevision_displayable_synopsis.py,sha256=YujHJb42VKht6BP0THj3VjHS133T1D612M4zwplCLbs,3924
49
+ bom/migrations/0029_auto_20191231_1630.py,sha256=w3UA4YUxbt0qTCXNCr9fzjyr8C7dw4c6kMZruMKIqkw,890
50
+ bom/migrations/0030_auto_20200101_2253.py,sha256=9z9ex2icyhtbkUy18K2XYTuDzSER3Bz6bqoNlWwwgxY,543
51
+ bom/migrations/0031_auto_20200104_1352.py,sha256=d39S0fLxsCV6oKw44X__ts6Av1oW2T5NSPdSk-0Xhrc,2301
52
+ bom/migrations/0032_auto_20200126_1806.py,sha256=3A3itA4XqcnbdIVDsK2mJVzhLBs71Nxw4_z6DLLPP1s,678
53
+ bom/migrations/0033_auto_20200203_0618.py,sha256=NZPS-JAXQMyx9S0xtvE4rw_ZUfSl1cgeNbAvB4IIwv0,1061
54
+ bom/migrations/0034_auto_20200222_0359.py,sha256=HJEHqca-r7ZehRpIYEDwrTsqONv2HfsOwWROeHQpq7w,1176
55
+ bom/migrations/0035_auto_20200303_0111.py,sha256=Rr56XRV8NtT6rAsqwjwkS30P8S_4-rEz_BNOQ5mAx2k,1373
56
+ bom/migrations/0036_auto_20200303_0538.py,sha256=fl9WR0SUxTmcCPA8n7rVi0nItJMFv45nwIoaqIJZUZM,358
57
+ bom/migrations/0037_auto_20200405_1642.py,sha256=sErpvVRdTNtk3B-xdo-C9PHbnBuAKQChUFWtWdbCmeA,16574
58
+ bom/migrations/0038_auto_20200422_0504.py,sha256=h_MukHMOeac0P0aRKRwgx2LKH4lqDc_DNyLF945q2uo,572
59
+ bom/migrations/0039_auto_20200929_2315.py,sha256=_ee2sXZHUZMPd1nvMhq1hRmH-4T319paX-G9TFTaTwo,1586
60
+ bom/migrations/0040_alter_organization_currency.py,sha256=wRg9hVAF36RdUZB20P-msWeAxGaXePdh7c9kRjRQrQ4,10235
61
+ bom/migrations/0041_organization_subscription_quantity.py,sha256=o8hDoDdukg_vKI4SvHBLhfZb2AefmcuDe6ByOJF74RQ,409
62
+ bom/migrations/0042_auto_20210720_2137.py,sha256=l99WylpP3dN60th14SdQjh-eThbElehMbThYzLqokT8,717
63
+ bom/migrations/0043_auto_20211123_0157.py,sha256=rUAxfsk2AM6J_4ZO7t31KIYMMwQEEeMB8b_JevKqt0s,1064
64
+ bom/migrations/0044_auto_20220831_1241.py,sha256=A11APIc9pW8jHWm3Ebw1QRV613vxp1Btj3B0g8d1EUU,578
65
+ bom/migrations/0045_sellerpart_link.py,sha256=8c8GgHMYkbRMlDuBqUjD8xG7Ifai-xDscwkORWmHBzw,390
66
+ bom/migrations/0046_alter_sellerpart_unique_together.py,sha256=KcOwhf5Vh02wDq_Z3PKgBJOI_HCk_m1QQtISI0ZPCpQ,336
67
+ bom/migrations/0047_sellerpart_seller_part_number.py,sha256=QdjdWMNlSyLHB7uSTq_8xhPxnYAXR8yht-d_AsMvJBw,446
68
+ bom/migrations/0048_rename_part_organization_number_class_bom_part_organiz_b333d6_idx_and_more.py,sha256=rZ_mfd_xFu4BglhYxkNuQVqwThZ721kjrlCAn9LkNRo,50969
69
+ bom/migrations/0049_alter_assembly_id_alter_assemblysubparts_id_and_more.py,sha256=l1q5BCNVYWD6Ngf9pGzYq1hQMvvshmdFlm33On63YNc,3247
70
+ bom/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
+ bom/static/bom/css/dashboard.css,sha256=saLXUpnVRjsV9HNdsmQD4Eq-zBlm8R2YePhvoc1uifk,245
72
+ bom/static/bom/css/jquery.treetable.css,sha256=H37aGBAAFP3R6v08nui9gKSdLE2VGsGsmlttrIImzfE,652
73
+ bom/static/bom/css/materialize.min.css,sha256=OweaP_Ic6rsV-lysfyS4h-LM6sRwuO3euTYfr6M124g,141841
74
+ bom/static/bom/css/part-info.css,sha256=xQ6zJXHLStwU76UVoYxjG-MjdQzFRwg-jANqrj_KFS0,252
75
+ bom/static/bom/css/style.css,sha256=UQYNTOaID7Yhz4d63Sl-AE3cW0zfMHCbqBlqly1tyI8,4587
76
+ bom/static/bom/css/tablesorter-theme.materialize.css,sha256=S7DYXb4vdqdDSUouZ8aIbAxIpemhIzFfeRySdnvvSlc,7435
77
+ bom/static/bom/css/treetable-theme.css,sha256=RxMklK-XfcF90gxekH3IULmyr7_HRA0TdNz_9Xjxuro,24013
78
+ bom/static/bom/doc/sample_part_classes.csv,sha256=nAWhBV9KtHSejLUKD7OKKtbkfUYCeLgCwze9BPstiFo,1694
79
+ bom/static/bom/doc/test_bom.csv,sha256=X0qpsC-sntO7-wCZmG403aMqfw5VLXEn0t27kEhE6Vw,203
80
+ bom/static/bom/doc/test_bom_5_intelligent.csv,sha256=h0GHqpUaIztBT9UUPvYGnpW8HFpXbR9xLCYb0kFdfTE,267
81
+ bom/static/bom/doc/test_full_bom.csv,sha256=JFCdYzm5nweyi-JzTBbAAbq3pg2CgZBBlVQLZ-dvF2I,5908
82
+ bom/static/bom/doc/test_new_parts.csv,sha256=ZDGx8DrxgrqH2bbgCdn0Lapm1eDp2z0yyQdmi-PWQy8,371
83
+ bom/static/bom/doc/test_new_parts_5_intelligent.csv,sha256=0H8gpjE-wJ091nW1Y3hAs1T8fVJ0qrrQP4037I2xXvY,380
84
+ bom/static/bom/img/_ionicons_svg_md-arrow-dropdown.svg,sha256=4wh479Go36xHl3TbfKRaeY9wFUOKqi92XgyWm3mSE2I,127
85
+ bom/static/bom/img/_ionicons_svg_md-arrow-dropright.svg,sha256=zznUpZt-uJamQubtVcUyrrNuzJ42HgYsGAuLq4Z5HFY,127
86
+ bom/static/bom/img/favicon.ico,sha256=16YNCPP6QZC_XwWCxTvLYiIkGcEMCHh8vMS2HTDgRU0,1150
87
+ bom/static/bom/img/google_drive_logo.svg,sha256=W_GF_XX9kvM7A_JiaLPL4wUlqbFNl_w76BLuZmrfxeM,1102
88
+ bom/static/bom/img/indabom.png,sha256=YU_1RGUbNfQpCcnPSkQS6PZY8mbcT3nibnZmRX2QZ18,42071
89
+ bom/static/bom/img/mouser.png,sha256=AUqNusUz-MSDCBoeYfOuklGycQDdShaTPguBd1AUir0,24809
90
+ bom/static/bom/img/octopart_blue.svg,sha256=Hr1HbJ50CX_ZRQTQcMLeRdzIjDhynwKzhq5JpS62IsI,1351
91
+ bom/static/bom/img/google/web/1x/btn_google_signin_dark_disabled_web.png,sha256=nde5HNwP8QPtfl02WFqtMCE17bpg9ctqdXrq13W5HFo,2308
92
+ bom/static/bom/img/google/web/1x/btn_google_signin_dark_focus_web.png,sha256=dTNDb6mf6MRCGfs0bMuAE42jC9ZVVDSVvDOwrWHR400,4185
93
+ bom/static/bom/img/google/web/1x/btn_google_signin_dark_normal_web.png,sha256=O5NF1vtnKSiTx6emEZ5G_vNXxoCTcyzqzEX2twDyQ7g,3983
94
+ bom/static/bom/img/google/web/1x/btn_google_signin_dark_pressed_web.png,sha256=NCai0rdg2yvnEnZT0hbXV45JnF598l_qH4YaVhCNfVs,4236
95
+ bom/static/bom/img/google/web/1x/btn_google_signin_light_disabled_web.png,sha256=nde5HNwP8QPtfl02WFqtMCE17bpg9ctqdXrq13W5HFo,2308
96
+ bom/static/bom/img/google/web/1x/btn_google_signin_light_focus_web.png,sha256=HoPDNi4MHlmMupekYH6F6WisqSIXjxLkwUaMQSHUrc8,4328
97
+ bom/static/bom/img/google/web/1x/btn_google_signin_light_normal_web.png,sha256=ug2zQ8lIS8RrajnJkBae6IDCBLDTIJ0g_O_YVa9t60k,4099
98
+ bom/static/bom/img/google/web/1x/btn_google_signin_light_pressed_web.png,sha256=y8vUwjBaWBtKckIKv7uVVerhCz_tp8feTFrXROg-hM0,4135
99
+ bom/static/bom/img/google/web/2x/btn_google_signin_dark_disabled_web@2x.png,sha256=QmOzmcT_NgU1L7M4dzqBtMNZyY_6Pr-JrlHfqsnn7r4,4897
100
+ bom/static/bom/img/google/web/2x/btn_google_signin_dark_focus_web@2x.png,sha256=kl_yVOixjy3kwp8qG9YRvluO71gEcu7D1coeRWUDyGs,8513
101
+ bom/static/bom/img/google/web/2x/btn_google_signin_dark_normal_web@2x.png,sha256=3Q-a7AKeU9OvJLLc3xnL-8q0ax8aZxHGFivTsZL_y0I,8001
102
+ bom/static/bom/img/google/web/2x/btn_google_signin_dark_pressed_web@2x.png,sha256=20p5OILHBMz5JTWjNCpiD1h0R_KbABeM5lmBVcqRbdw,8483
103
+ bom/static/bom/img/google/web/2x/btn_google_signin_light_disabled_web@2x.png,sha256=QmOzmcT_NgU1L7M4dzqBtMNZyY_6Pr-JrlHfqsnn7r4,4897
104
+ bom/static/bom/img/google/web/2x/btn_google_signin_light_focus_web@2x.png,sha256=OJ9LrQqv4E138ximdLd9FI_xG4neR-Vd73vSH51X3qI,8664
105
+ bom/static/bom/img/google/web/2x/btn_google_signin_light_normal_web@2x.png,sha256=GBHpUDDN3PUYuMLpT5r2LMIdg5v380fJm2mJ489YkyQ,8055
106
+ bom/static/bom/img/google/web/2x/btn_google_signin_light_pressed_web@2x.png,sha256=P1S5Rkb1MtA09NaoOiQ1VG_2pHR2vcJbCk4gi8fRSxM,8265
107
+ bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.eps,sha256=6eqMvyqkm0DfXlJkAG4e_fT42f4MUMsT3bPQdCLDjgY,20286
108
+ bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.svg,sha256=lAtIDLxAxGbtUDxDvaABxWEwQIcK7nvrJ8IW0L1HrOE,1996
109
+ bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.eps,sha256=LTqeKfbI2trwfgaKDFeWUANA-WVacHagOnqr05VnC5I,94048
110
+ bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.svg,sha256=Av1vhiDFmn4ScwxwzmlW6GgMm0cEV2j7_1xujNliMYE,4917
111
+ bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.eps,sha256=zp1hNh2VJYcAlXL6FskiWOW1w0ZlSl2DLWrd9ARwuV8,26465
112
+ bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.svg,sha256=OUCMtjQr3ZEyswF7yfva9TQAn4l3FMLbjjphZEv1VlQ,4779
113
+ bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.eps,sha256=H_KYx7KaOcAv9WXwF8PHW9wFtAq3pG06a2AOTkZ30vQ,26484
114
+ bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.svg,sha256=TDVDA40zpd7up0DyQ80zEzmTnf7Bd2eIJdRXuR2I_ds,4781
115
+ bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.eps,sha256=6eqMvyqkm0DfXlJkAG4e_fT42f4MUMsT3bPQdCLDjgY,20286
116
+ bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.svg,sha256=ZNsc0fGHEF8_W3k_ukvrm9n7aTgcwDZ_17O2Y33WoPg,1998
117
+ bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.eps,sha256=9O7Bak7wDA6AxQ_0_BM8pAdO3YY1TnvG8-mhy3ubS8w,93663
118
+ bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.svg,sha256=XZPXZStHtQr2eBmoLvlGSDgPgX_k4YMRfTEBwWR6KYs,4496
119
+ bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.eps,sha256=xZ8gC5DOCSVA0lAILyuk0tZXHK6Xt9S8gspkc7DyNXc,26080
120
+ bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.svg,sha256=Rk6WGzHe0lGJGEyWiN6lTusosfK8ubtqSdf0ZzuWLBE,4358
121
+ bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.eps,sha256=WUvJDjV62btGu5W1SkKE6juGMOHnA62JJ_0p8C_eOnw,26107
122
+ bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.svg,sha256=CR9QqAnt_NVL2YweEZe4fN6kQ6QQ31nZHxSmwqVs1t0,4360
123
+ bom/static/bom/js/jquery-3.4.1.min.js,sha256=CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo,88145
124
+ bom/static/bom/js/jquery.ba-floatingscrollbar.min.js,sha256=NptA5rS2zjhkcu26WQJtMr34psHYzUYRsLrSziTusgg,1271
125
+ bom/static/bom/js/jquery.treetable.js,sha256=JEXnh_LuKYxk8CUIT1anQ4es4nfOqC0bds_NjsbMBUI,16611
126
+ bom/static/bom/js/materialize.min.js,sha256=9aWZlbcIvNSnb4BWaUYlFNGylNeTWUL_yffW_3Dbk_o,181114
127
+ bom/templates/bom/account-delete.html,sha256=YjtG5o-sJHuK4Np3vyEliySF-eAwmFn0ROynDdvPMsU,728
128
+ bom/templates/bom/add-manufacturer-part.html,sha256=gM5_-RfgiuQwfns7s1J006d6ypKMbdG8F_kdLGQrJjA,3242
129
+ bom/templates/bom/add-sellerpart.html,sha256=W9rUYrfpqw3yx45S86GIpepdmN_8Xrf23urYexgObBw,4279
130
+ bom/templates/bom/base-menu.html,sha256=bGZ93zRkDlTqdAh-5TRRk7cjBf_e9hg2wQR1URpogMA,822
131
+ bom/templates/bom/base.html,sha256=pMoqT71X9FW1cGUAuOQvNuZqwcH3Z4_6nARt2JUapN8,5797
132
+ bom/templates/bom/bom-action-btn.html,sha256=ovaFLCOWvhVVwgmSo8nKuhvGmqc-oHrZJ7vlguqsFFc,1192
133
+ bom/templates/bom/bom-action-table.html,sha256=JkIoeLmqcAXxggRfn_xA-5_7wZ02ELhXjnkWnK45ats,3041
134
+ bom/templates/bom/bom-base-menu.html,sha256=PeViadG1PKyljvYfPyBFOKgqWhYHBM0tX5Teu5ha0FU,654
135
+ bom/templates/bom/bom-base.html,sha256=SvQOyg8ILULjnJKMaYv6Rf4wS8SNXXIjVY2nl5bm7B4,691
136
+ bom/templates/bom/bom-form-modal.html,sha256=U2EWKjOA41jiScKJHXduJJw_hPNGHtYfdiT3yUuwzRY,1389
137
+ bom/templates/bom/bom-form.html,sha256=1oJetm0fJgPAY1zJ2RNv_Pv9MAja2rjz9pO2bR_UA28,1017
138
+ bom/templates/bom/bom-signup.html,sha256=y0z_kQKCDb91ZdexCmUX1NRKH35l-I_N5f2SgO3G2gI,184
139
+ bom/templates/bom/create-part.html,sha256=UjHx6rkPJl-BRt9gKs5zB3s5Y4vrImDTuD25lvABzAI,3610
140
+ bom/templates/bom/dashboard-menu.html,sha256=4MnFSw0x4w7R0CsSwEDFP3FuZVBFxVChIHr58l3rpSk,799
141
+ bom/templates/bom/dashboard.html,sha256=m-jGdf4aeIcQqbdqSTwzRCIoLldiIIUQrfM-zRJgyvU,16314
142
+ bom/templates/bom/edit-manufacturer-part.html,sha256=4WagGptcVtYCxW1zWvHGeaZSc-0qqEKDRHFyKarqIjU,3518
143
+ bom/templates/bom/edit-part-class.html,sha256=WOWaxaaGZTIumHI_lTeBgPSSmBHnTlASzq03nvIulQ4,1430
144
+ bom/templates/bom/edit-part.html,sha256=bGfBI3X8eb7iLy_nYDPQRP2CKyp4tNO2-vjakx-_YiM,3051
145
+ bom/templates/bom/edit-user-meta.html,sha256=8M4TOPigOBX71wCRVZ4Z_qn2XVNO4aQQujSOHwJoER8,1681
146
+ bom/templates/bom/help.html,sha256=hi16fwtVqeWP3Vb3vOpLSKx0ioB1MODJ8lkh6bczfiM,83247
147
+ bom/templates/bom/manufacturer-info.html,sha256=jR98qXONqquEeda92djQgmFfmJiC8jbsGgyXuzJY100,3742
148
+ bom/templates/bom/manufacturers.html,sha256=3ZF8Up-IiAvR6CCmrj_92qPPh7vKrVQaEN05KKX2yrA,5550
149
+ bom/templates/bom/nothing-to-see.html,sha256=cRspNAHlSfv7KjQwp34gANhVqQbXzfFpqtRSm6NoV9s,657
150
+ bom/templates/bom/organization-create.html,sha256=4o3C58CQDF3Jz1cZ1UPoLfX0qNvwMKK3UnFeXGMmPww,7899
151
+ bom/templates/bom/part-info.html,sha256=lilYygmR8cQhQ5lJeYK6dj-OdIm72s1SerELHqyrPSs,25406
152
+ bom/templates/bom/part-revision-display.html,sha256=t_wwzf910fhBc2vFjqoISnhX4OEr7pkfh8R-RGq_6ac,5509
153
+ bom/templates/bom/part-revision-edit.html,sha256=gOWiRd8Vq0z912_fI9UtBC0yYkcF_lruMQfAWN4kqw0,1624
154
+ bom/templates/bom/part-revision-manage-bom.html,sha256=Nd1CIANnCwYU5KzijlIDfKTXjXqrDOeuwmGOk-CYyrY,5073
155
+ bom/templates/bom/part-revision-new.html,sha256=BMgKBNmFkrsimqSeviP1Rn3huOB_0kfK-77oIyqwItw,2691
156
+ bom/templates/bom/part-revision-release.html,sha256=voG7wmYc1Cm3e_H1IasvQcPuyqnnauqkgvUfom9K65o,2120
157
+ bom/templates/bom/search-help.html,sha256=Wh_tXBJtz0bznk0F1C7OSdRhMe2qpOs9NMCBb2i0CFI,4398
158
+ bom/templates/bom/seller-info.html,sha256=MACsHMYQXMWfRslXuvh9hD2z28VXzVi0DSy4yg7WQMk,3595
159
+ bom/templates/bom/sellers.html,sha256=6ut7LwRMGUKYB4BRjiSpDBP9BGgqT7nxpNQpUVWDvkw,5412
160
+ bom/templates/bom/settings.html,sha256=atWF7AMoQaeFse3FbDPXwFRPYqZR0cYA-DciFus3ge4,26832
161
+ bom/templates/bom/signup.html,sha256=tB_x7q3IufSNXsd9Dfh8fdWpkiWSGH2_Zgw749B1PaU,884
162
+ bom/templates/bom/table_of_contents.html,sha256=7wXWOfmVkk5Itjax5x1PE-g5QjxqmYBr7RW8NgtGRng,1763
163
+ bom/templates/bom/upload-bom.html,sha256=qGlI9HoUNe9H2m5T5TqKWGphaNupz3Y0020h_7GebsU,5230
164
+ bom/templates/bom/upload-parts-help.html,sha256=h2QbPn2QCRD6FVwDwerQSqM72fRFLI5835MsNtrvT7k,5456
165
+ bom/templates/bom/upload-parts.html,sha256=nKAj20gVP_H-ATj_b-sMIKCmVKt2HRogFK0MEM-LGf4,2291
166
+ bom/templates/bom/components/bom-flat.html,sha256=hPjjmVVqIgFB_aGWus0kfqUu8PgL1uJHZZuV_U5Eh0k,7603
167
+ bom/templates/bom/components/bom-indented.html,sha256=0dm5E7WEKYGxzZ5aMDHUaW1HMLbPcorLiBBEHU8usZI,13120
168
+ bom/templates/bom/components/manufacturer-part-list.html,sha256=TLLxECDXp6wNHZ05xCrg2-3rxOou2lortu10UmSHXjM,16281
169
+ bom/templates/bom/components/seller-part-list.html,sha256=nMVo2igTsi7UGeWkVh4s42BflYxT37KOtN1UzrG5bHs,3008
170
+ bom/templates/registration/login.html,sha256=IPqipDds2Xrpg7uRNgd3grGZU29x7NMBg59jpno925M,1095
171
+ bom/third_party_apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
+ bom/third_party_apis/base_api.py,sha256=0ZXLsn6ZGlcnfmS80ndZfHUDrXwNqod5ANCYHRLw5M0,1838
173
+ bom/third_party_apis/google_drive.py,sha256=8ECE9_8f1KAyNTtkalws-Gl51wxAaTLP40bD5OWsZx4,6495
174
+ bom/third_party_apis/mouser.py,sha256=q2-p0k2n-LNel_QRlfak0kAXT-9hh59k_Pt51PTG09s,5576
175
+ bom/third_party_apis/test_apis.py,sha256=2W0jtTisGTmktC7l556pn9-pZYseTQmmQfo6_4uP4Dc,679
176
+ bom/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
+ bom/views/json_views.py,sha256=CaDMxHGnp2182ZV9QZfNkgM7tc_rNmokkelav9rF2dE,2462
178
+ bom/views/views.py,sha256=Fi3shpOhGaK-RNubngqcyXGzb74x4iwqDexPxMES6tE,71666
179
+ django_bom-1.237.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
180
+ django_bom-1.237.dist-info/METADATA,sha256=8o4lyQfOHBCegPHAs10f49BEnW-UXiO-YDJGgVVHi2w,7558
181
+ django_bom-1.237.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
182
+ django_bom-1.237.dist-info/top_level.txt,sha256=6zytg4lnnobI96dO-ZEadPOCslrrFmf4t2Pnv-y8x0Y,4
183
+ django_bom-1.237.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+