django-bom 1.262__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.

Potentially problematic release.


This version of django-bom might be problematic. Click here for more details.

Files changed (191) hide show
  1. bom/__init__.py +1 -0
  2. bom/admin.py +207 -0
  3. bom/apps.py +8 -0
  4. bom/auth_backends.py +47 -0
  5. bom/base_classes.py +31 -0
  6. bom/constants.py +217 -0
  7. bom/context_processors.py +9 -0
  8. bom/csv_headers.py +252 -0
  9. bom/decorators.py +32 -0
  10. bom/form_fields.py +59 -0
  11. bom/forms.py +1328 -0
  12. bom/helpers.py +367 -0
  13. bom/local_settings.py +35 -0
  14. bom/migrations/0001_initial.py +135 -0
  15. bom/migrations/0002_auto_20180908_2151.py +24 -0
  16. bom/migrations/0003_sellerpart_data_source.py +18 -0
  17. bom/migrations/0004_auto_20180911_0011.py +18 -0
  18. bom/migrations/0005_auto_20181007_1934.py +56 -0
  19. bom/migrations/0006_auto_20181007_1949.py +41 -0
  20. bom/migrations/0007_auto_20181009_0256.py +19 -0
  21. bom/migrations/0008_auto_20181030_0427.py +19 -0
  22. bom/migrations/0009_subpart_reference.py +18 -0
  23. bom/migrations/0010_auto_20181202_0733.py +23 -0
  24. bom/migrations/0011_auto_20181202_2113.py +22 -0
  25. bom/migrations/0012_partchangehistory.py +30 -0
  26. bom/migrations/0013_auto_20190222_1631.py +19 -0
  27. bom/migrations/0014_auto_20190223_2353.py +18 -0
  28. bom/migrations/0015_auto_20190303_1915.py +136 -0
  29. bom/migrations/0016_auto_20190405_2308.py +58 -0
  30. bom/migrations/0017_auto_20190616_1912.py +19 -0
  31. bom/migrations/0018_auto_20190616_2143.py +24 -0
  32. bom/migrations/0019_auto_20190624_1246.py +45 -0
  33. bom/migrations/0020_auto_20190627_0207.py +38 -0
  34. bom/migrations/0021_auto_20190627_0428.py +23 -0
  35. bom/migrations/0022_auto_20190811_2140.py +35 -0
  36. bom/migrations/0023_auto_20191205_2351.py +255 -0
  37. bom/migrations/0024_auto_20191214_1342.py +89 -0
  38. bom/migrations/0025_auto_20191221_1907.py +38 -0
  39. bom/migrations/0026_auto_20191222_2258.py +22 -0
  40. bom/migrations/0027_auto_20191222_2347.py +17 -0
  41. bom/migrations/0028_partrevision_displayable_synopsis.py +74 -0
  42. bom/migrations/0029_auto_20191231_1630.py +23 -0
  43. bom/migrations/0030_auto_20200101_2253.py +22 -0
  44. bom/migrations/0031_auto_20200104_1352.py +38 -0
  45. bom/migrations/0032_auto_20200126_1806.py +27 -0
  46. bom/migrations/0033_auto_20200203_0618.py +29 -0
  47. bom/migrations/0034_auto_20200222_0359.py +30 -0
  48. bom/migrations/0035_auto_20200303_0111.py +34 -0
  49. bom/migrations/0036_auto_20200303_0538.py +17 -0
  50. bom/migrations/0037_auto_20200405_1642.py +44 -0
  51. bom/migrations/0038_auto_20200422_0504.py +19 -0
  52. bom/migrations/0039_auto_20200929_2315.py +41 -0
  53. bom/migrations/0040_alter_organization_currency.py +19 -0
  54. bom/migrations/0041_organization_subscription_quantity.py +18 -0
  55. bom/migrations/0042_auto_20210720_2137.py +23 -0
  56. bom/migrations/0043_auto_20211123_0157.py +24 -0
  57. bom/migrations/0044_auto_20220831_1241.py +23 -0
  58. bom/migrations/0045_sellerpart_link.py +18 -0
  59. bom/migrations/0046_alter_sellerpart_unique_together.py +17 -0
  60. bom/migrations/0047_sellerpart_seller_part_number.py +18 -0
  61. bom/migrations/0048_rename_part_organization_number_class_bom_part_organiz_b333d6_idx_and_more.py +1017 -0
  62. bom/migrations/0049_alter_assembly_id_alter_assemblysubparts_id_and_more.py +99 -0
  63. bom/migrations/0050_alter_organization_options.py +17 -0
  64. bom/migrations/0051_alter_manufacturer_organization_and_more.py +41 -0
  65. bom/migrations/0052_remove_partrevision_attribute_and_more.py +584 -0
  66. bom/migrations/__init__.py +0 -0
  67. bom/models.py +886 -0
  68. bom/part_bom.py +192 -0
  69. bom/settings.py +262 -0
  70. bom/static/bom/css/dashboard.css +17 -0
  71. bom/static/bom/css/jquery.treetable.css +28 -0
  72. bom/static/bom/css/materialize.min.css +13 -0
  73. bom/static/bom/css/part-info.css +15 -0
  74. bom/static/bom/css/style.css +482 -0
  75. bom/static/bom/css/tablesorter-theme.materialize.css +176 -0
  76. bom/static/bom/css/treetable-theme.css +42 -0
  77. bom/static/bom/doc/sample_part_classes.csv +38 -0
  78. bom/static/bom/doc/test_bom.csv +6 -0
  79. bom/static/bom/doc/test_bom_5_intelligent.csv +4 -0
  80. bom/static/bom/doc/test_full_bom.csv +37 -0
  81. bom/static/bom/doc/test_new_parts.csv +5 -0
  82. bom/static/bom/doc/test_new_parts_5_intelligent.csv +5 -0
  83. bom/static/bom/img/_ionicons_svg_md-arrow-dropdown.svg +1 -0
  84. bom/static/bom/img/_ionicons_svg_md-arrow-dropright.svg +1 -0
  85. bom/static/bom/img/favicon.ico +0 -0
  86. bom/static/bom/img/google/web/1x/btn_google_signin_dark_disabled_web.png +0 -0
  87. bom/static/bom/img/google/web/1x/btn_google_signin_dark_focus_web.png +0 -0
  88. bom/static/bom/img/google/web/1x/btn_google_signin_dark_normal_web.png +0 -0
  89. bom/static/bom/img/google/web/1x/btn_google_signin_dark_pressed_web.png +0 -0
  90. bom/static/bom/img/google/web/1x/btn_google_signin_light_disabled_web.png +0 -0
  91. bom/static/bom/img/google/web/1x/btn_google_signin_light_focus_web.png +0 -0
  92. bom/static/bom/img/google/web/1x/btn_google_signin_light_normal_web.png +0 -0
  93. bom/static/bom/img/google/web/1x/btn_google_signin_light_pressed_web.png +0 -0
  94. bom/static/bom/img/google/web/2x/btn_google_signin_dark_disabled_web@2x.png +0 -0
  95. bom/static/bom/img/google/web/2x/btn_google_signin_dark_focus_web@2x.png +0 -0
  96. bom/static/bom/img/google/web/2x/btn_google_signin_dark_normal_web@2x.png +0 -0
  97. bom/static/bom/img/google/web/2x/btn_google_signin_dark_pressed_web@2x.png +0 -0
  98. bom/static/bom/img/google/web/2x/btn_google_signin_light_disabled_web@2x.png +0 -0
  99. bom/static/bom/img/google/web/2x/btn_google_signin_light_focus_web@2x.png +0 -0
  100. bom/static/bom/img/google/web/2x/btn_google_signin_light_normal_web@2x.png +0 -0
  101. bom/static/bom/img/google/web/2x/btn_google_signin_light_pressed_web@2x.png +0 -0
  102. bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.eps +814 -0
  103. bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.svg +24 -0
  104. bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.eps +1866 -0
  105. bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.svg +51 -0
  106. bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.eps +1031 -0
  107. bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.svg +50 -0
  108. bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.eps +1031 -0
  109. bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.svg +50 -0
  110. bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.eps +814 -0
  111. bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.svg +24 -0
  112. bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.eps +1837 -0
  113. bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.svg +44 -0
  114. bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.eps +1002 -0
  115. bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.svg +43 -0
  116. bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.eps +1002 -0
  117. bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.svg +43 -0
  118. bom/static/bom/img/google_drive_logo.svg +1 -0
  119. bom/static/bom/img/indabom.png +0 -0
  120. bom/static/bom/img/mouser.png +0 -0
  121. bom/static/bom/img/octopart_blue.svg +19 -0
  122. bom/static/bom/js/formset-handler.js +65 -0
  123. bom/static/bom/js/jquery-3.4.1.min.js +2 -0
  124. bom/static/bom/js/jquery.ba-floatingscrollbar.min.js +10 -0
  125. bom/static/bom/js/jquery.treetable.js +629 -0
  126. bom/static/bom/js/materialize.min.js +6 -0
  127. bom/templates/bom/account-delete.html +23 -0
  128. bom/templates/bom/add-manufacturer-part.html +66 -0
  129. bom/templates/bom/add-sellerpart.html +93 -0
  130. bom/templates/bom/base-menu.html +16 -0
  131. bom/templates/bom/base.html +129 -0
  132. bom/templates/bom/bom-action-btn.html +23 -0
  133. bom/templates/bom/bom-action-table.html +57 -0
  134. bom/templates/bom/bom-base-menu.html +6 -0
  135. bom/templates/bom/bom-base.html +24 -0
  136. bom/templates/bom/bom-form-modal.html +36 -0
  137. bom/templates/bom/bom-form.html +30 -0
  138. bom/templates/bom/bom-modal-add-users.html +49 -0
  139. bom/templates/bom/bom-signup.html +12 -0
  140. bom/templates/bom/components/bom-flat.html +131 -0
  141. bom/templates/bom/components/bom-indented.html +237 -0
  142. bom/templates/bom/components/manufacturer-part-list.html +270 -0
  143. bom/templates/bom/components/seller-part-list.html +62 -0
  144. bom/templates/bom/create-part.html +65 -0
  145. bom/templates/bom/dashboard-menu.html +15 -0
  146. bom/templates/bom/dashboard.html +303 -0
  147. bom/templates/bom/edit-manufacturer-part.html +72 -0
  148. bom/templates/bom/edit-part-class.html +120 -0
  149. bom/templates/bom/edit-part.html +67 -0
  150. bom/templates/bom/edit-quantity-of-measure.html +119 -0
  151. bom/templates/bom/edit-user-meta.html +70 -0
  152. bom/templates/bom/help.html +1356 -0
  153. bom/templates/bom/manufacturer-info.html +82 -0
  154. bom/templates/bom/manufacturers.html +97 -0
  155. bom/templates/bom/nothing-to-see.html +15 -0
  156. bom/templates/bom/organization-create.html +135 -0
  157. bom/templates/bom/part-info.html +448 -0
  158. bom/templates/bom/part-revision-display.html +50 -0
  159. bom/templates/bom/part-revision-edit.html +39 -0
  160. bom/templates/bom/part-revision-manage-bom.html +115 -0
  161. bom/templates/bom/part-revision-new.html +57 -0
  162. bom/templates/bom/part-revision-release.html +41 -0
  163. bom/templates/bom/search-help.html +101 -0
  164. bom/templates/bom/seller-info.html +82 -0
  165. bom/templates/bom/sellers.html +97 -0
  166. bom/templates/bom/settings.html +734 -0
  167. bom/templates/bom/signup.html +28 -0
  168. bom/templates/bom/subscription_panel.html +16 -0
  169. bom/templates/bom/table_of_contents.html +47 -0
  170. bom/templates/bom/upload-bom.html +111 -0
  171. bom/templates/bom/upload-parts-help.html +103 -0
  172. bom/templates/bom/upload-parts.html +50 -0
  173. bom/templates/registration/login.html +39 -0
  174. bom/tests.py +1592 -0
  175. bom/third_party_apis/__init__.py +0 -0
  176. bom/third_party_apis/base_api.py +51 -0
  177. bom/third_party_apis/google_drive.py +166 -0
  178. bom/third_party_apis/mouser.py +132 -0
  179. bom/third_party_apis/test_apis.py +24 -0
  180. bom/urls.py +100 -0
  181. bom/utils.py +228 -0
  182. bom/validators.py +23 -0
  183. bom/views/__init__.py +0 -0
  184. bom/views/json_views.py +55 -0
  185. bom/views/views.py +1773 -0
  186. bom/wsgi.py +16 -0
  187. django_bom-1.262.dist-info/METADATA +206 -0
  188. django_bom-1.262.dist-info/RECORD +191 -0
  189. django_bom-1.262.dist-info/WHEEL +5 -0
  190. django_bom-1.262.dist-info/licenses/LICENSE +674 -0
  191. django_bom-1.262.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.262
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.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,191 @@
1
+ bom/__init__.py,sha256=HuvSMR9cYQcppTZGD0XjUVUBtHWwWMh1yMQzk_2wTS4,41
2
+ bom/admin.py,sha256=MmCa4X9J5aKNbQTrfyLnDdoIt9MrlS3rI1sN9EkhsIs,5892
3
+ bom/apps.py,sha256=TJMUTSX1h2genPwCq6SN6g1fhrrSmjEXGg2zQFa_ryM,147
4
+ bom/auth_backends.py,sha256=Xj3MCUJg3r9M4v1c8wrxC3lwpE5F8_2_HD5s9M_5Rms,1480
5
+ bom/base_classes.py,sha256=CrWD7wlIkwYb90VoGcVOcw2WoQszRrCje-Re5d_UW1Q,1183
6
+ bom/constants.py,sha256=Vs3-s1_ej8hDMlq5YC01vZXs1TECuPe9sn834UierLI,4666
7
+ bom/context_processors.py,sha256=OxMVCqxGtRoHR7aJfTs6xANpxJQzBDUIuNTG1f_Xjoo,312
8
+ bom/csv_headers.py,sha256=0WLvgchbTtW_9ya3UC_qL5hv7muuklf_vtoMNBFAOoc,11468
9
+ bom/decorators.py,sha256=fCK-lxJTBp3LEdZtKMyQg5hRqxQm5RJny9eb7oyjbtE,1233
10
+ bom/form_fields.py,sha256=tLqchl0j8izBCZnm82NMyHpQV6EuGgCjCl5lrnGR2V0,2816
11
+ bom/forms.py,sha256=_hsEdhyr2QDQ-Ei7ZRcv4N9s4lmbYR4xT5-NhyJ8rB4,57312
12
+ bom/helpers.py,sha256=jzwNDgD-4htdJfWWjNy8ZhVqfdgSxhNpsFn6kDpC5UU,20172
13
+ bom/local_settings.py,sha256=yE4aupIquCWsFms44qoCrRrlIyM3sqpOkiwyj1WLxI8,820
14
+ bom/models.py,sha256=dzvhU68hu5Wam4RvD3e75dcsqsbVmBWVe8vi57w40hQ,38424
15
+ bom/part_bom.py,sha256=30HYAKAEhtadiM9tk6vgCQnn7gNJeuXbzF5gXvMvKG4,8720
16
+ bom/settings.py,sha256=aBg0PHaK9NvNZNmfnPrU4-kp2GQeeAGMB_EVvMoAmJs,8197
17
+ bom/tests.py,sha256=Grn2aoXR7AnoVJ9Wa_stgkofk94WS7sPcVKWxpelvY0,73980
18
+ bom/urls.py,sha256=7yjQ7ONydqZHHFHd9jWThEu_03r3LyDcVJ-BGYNy6LQ,7589
19
+ bom/utils.py,sha256=z_2jACSkRc0hsc0mdR8tOK10KiSDeM0a6rXIpztPDuA,7302
20
+ bom/validators.py,sha256=tiQYIblITCOwb8m1kfs_CFmFnJofCtFzqENlxBuGL7Y,872
21
+ bom/wsgi.py,sha256=-2oAfSSVdNFCjxaKXcPp-JL_K8AhVClzls6OC_ZI1Jc,380
22
+ bom/migrations/0001_initial.py,sha256=yzoGfeDM4NCpiV46puaHH663O-UdRHw8o-m7kP-DV0s,7005
23
+ bom/migrations/0002_auto_20180908_2151.py,sha256=_UCeo1iAKAPRopOoOuCiYjBkTQhKri_hj157k43efjg,753
24
+ bom/migrations/0003_sellerpart_data_source.py,sha256=vgACBfhmHPBC4pxDJlaW8AUAfxLZ4tmxfZuAYXSMDAc,414
25
+ bom/migrations/0004_auto_20180911_0011.py,sha256=ujMXUzDjGAWW63ncwYXVL4T-sGDZYzGIhhXJkPRM0HI,432
26
+ bom/migrations/0005_auto_20181007_1934.py,sha256=d4vCIaMTN6EX2uG5Z3z0_HhNkJIhRlKf2soBNvtFrgA,2402
27
+ bom/migrations/0006_auto_20181007_1949.py,sha256=5TS_A7jOipF_MPaoHNGGDkq_zgWtx0YdBmTnLIY0avE,1249
28
+ bom/migrations/0007_auto_20181009_0256.py,sha256=e-s5k7ftrTut58JgOCWCpZRJ290HtH9nT4QTeoAFnBc,569
29
+ bom/migrations/0008_auto_20181030_0427.py,sha256=KlxyShpI1GKP1IPUzwg7uP4P0RWb78UoYXoyIbt-5xI,570
30
+ bom/migrations/0009_subpart_reference.py,sha256=Jw1cAphGpz2F_y4A_EmhDc5Zqedrw2oq8s_6mHd8Hjc,404
31
+ bom/migrations/0010_auto_20181202_0733.py,sha256=PuCsIO6peJ5SER91DGrLhVY_90EUHSOOQnxEmDsQlUI,632
32
+ bom/migrations/0011_auto_20181202_2113.py,sha256=OWYRifpNULzM56PSVuL_Vd9YViVVugudDInLzdWjFl8,555
33
+ bom/migrations/0012_partchangehistory.py,sha256=Mm9U5jAylyvSMQE8TGr-IROauOZ0B8C3QHyCureoYag,1511
34
+ bom/migrations/0013_auto_20190222_1631.py,sha256=WqBge3uHZMWUYTYOD-DEy2TPH1k9OtI3nsXbwHmwMtI,472
35
+ bom/migrations/0014_auto_20190223_2353.py,sha256=N1jaNW47nb_tEneTqnps9gJccmYigeGhNnMJHTUSP_M,369
36
+ bom/migrations/0015_auto_20190303_1915.py,sha256=PIKz2LtpYghWBTAY6wLIWDQmNOsZ7pkmBaOgYmvY4VM,4673
37
+ bom/migrations/0016_auto_20190405_2308.py,sha256=3ssG9Bf5yHpHNLUDpo8tWVth60T432SephEoCPp0P7E,1800
38
+ bom/migrations/0017_auto_20190616_1912.py,sha256=lAoKaT7SGTmAcgKRyybOzo6rsPJwxhtGcQkxRRZ9EqQ,401
39
+ bom/migrations/0018_auto_20190616_2143.py,sha256=oNyoFF9Vtg6qLcexFDNULcMtqMlh8yjbZohCe_zPnqk,688
40
+ bom/migrations/0019_auto_20190624_1246.py,sha256=hB2u2bEzpQmLlU_8XBtzlrNaA13yykS1jZmD5SbyTOY,1590
41
+ bom/migrations/0020_auto_20190627_0207.py,sha256=3I6_tHZ1oX056dsqjlnR18Tq3J7qSCtDKYyUgpob8hQ,1147
42
+ bom/migrations/0021_auto_20190627_0428.py,sha256=wP6sfMyLWEglVZhhKbAWUqYy5TOVvrWbHKpPkPhSvQU,625
43
+ bom/migrations/0022_auto_20190811_2140.py,sha256=D3i_CDWK7xoSe2ZSR7Iry9ETn7rr_maQyr6KUgWkcdc,1025
44
+ bom/migrations/0023_auto_20191205_2351.py,sha256=VA9r9NezHN9NcUg2J2V98fo9Xcfzu4ohVFMxQgTNzwk,12891
45
+ bom/migrations/0024_auto_20191214_1342.py,sha256=4oHE8w7_DDHyyHxab3S05ysIk_5GcBGqVuUpDIZS0gs,5259
46
+ bom/migrations/0025_auto_20191221_1907.py,sha256=PF3s6gLPdGSk0Xuj34TBYZsTTRrU-71qWfLcisXKLeI,1888
47
+ bom/migrations/0026_auto_20191222_2258.py,sha256=U_TIBBmccMgYIhaVWeVEYdvFU_1ZhGORuGtEYzOOxcY,606
48
+ bom/migrations/0027_auto_20191222_2347.py,sha256=_RDQXgNdsOn55Mie5pTcFD_RSpukRiBMsbMU48URW_k,356
49
+ bom/migrations/0028_partrevision_displayable_synopsis.py,sha256=YujHJb42VKht6BP0THj3VjHS133T1D612M4zwplCLbs,3924
50
+ bom/migrations/0029_auto_20191231_1630.py,sha256=w3UA4YUxbt0qTCXNCr9fzjyr8C7dw4c6kMZruMKIqkw,890
51
+ bom/migrations/0030_auto_20200101_2253.py,sha256=9z9ex2icyhtbkUy18K2XYTuDzSER3Bz6bqoNlWwwgxY,543
52
+ bom/migrations/0031_auto_20200104_1352.py,sha256=d39S0fLxsCV6oKw44X__ts6Av1oW2T5NSPdSk-0Xhrc,2301
53
+ bom/migrations/0032_auto_20200126_1806.py,sha256=3A3itA4XqcnbdIVDsK2mJVzhLBs71Nxw4_z6DLLPP1s,678
54
+ bom/migrations/0033_auto_20200203_0618.py,sha256=NZPS-JAXQMyx9S0xtvE4rw_ZUfSl1cgeNbAvB4IIwv0,1061
55
+ bom/migrations/0034_auto_20200222_0359.py,sha256=HJEHqca-r7ZehRpIYEDwrTsqONv2HfsOwWROeHQpq7w,1176
56
+ bom/migrations/0035_auto_20200303_0111.py,sha256=Rr56XRV8NtT6rAsqwjwkS30P8S_4-rEz_BNOQ5mAx2k,1373
57
+ bom/migrations/0036_auto_20200303_0538.py,sha256=fl9WR0SUxTmcCPA8n7rVi0nItJMFv45nwIoaqIJZUZM,358
58
+ bom/migrations/0037_auto_20200405_1642.py,sha256=sErpvVRdTNtk3B-xdo-C9PHbnBuAKQChUFWtWdbCmeA,16574
59
+ bom/migrations/0038_auto_20200422_0504.py,sha256=h_MukHMOeac0P0aRKRwgx2LKH4lqDc_DNyLF945q2uo,572
60
+ bom/migrations/0039_auto_20200929_2315.py,sha256=_ee2sXZHUZMPd1nvMhq1hRmH-4T319paX-G9TFTaTwo,1586
61
+ bom/migrations/0040_alter_organization_currency.py,sha256=wRg9hVAF36RdUZB20P-msWeAxGaXePdh7c9kRjRQrQ4,10235
62
+ bom/migrations/0041_organization_subscription_quantity.py,sha256=o8hDoDdukg_vKI4SvHBLhfZb2AefmcuDe6ByOJF74RQ,409
63
+ bom/migrations/0042_auto_20210720_2137.py,sha256=l99WylpP3dN60th14SdQjh-eThbElehMbThYzLqokT8,717
64
+ bom/migrations/0043_auto_20211123_0157.py,sha256=rUAxfsk2AM6J_4ZO7t31KIYMMwQEEeMB8b_JevKqt0s,1064
65
+ bom/migrations/0044_auto_20220831_1241.py,sha256=A11APIc9pW8jHWm3Ebw1QRV613vxp1Btj3B0g8d1EUU,578
66
+ bom/migrations/0045_sellerpart_link.py,sha256=8c8GgHMYkbRMlDuBqUjD8xG7Ifai-xDscwkORWmHBzw,390
67
+ bom/migrations/0046_alter_sellerpart_unique_together.py,sha256=KcOwhf5Vh02wDq_Z3PKgBJOI_HCk_m1QQtISI0ZPCpQ,336
68
+ bom/migrations/0047_sellerpart_seller_part_number.py,sha256=QdjdWMNlSyLHB7uSTq_8xhPxnYAXR8yht-d_AsMvJBw,446
69
+ bom/migrations/0048_rename_part_organization_number_class_bom_part_organiz_b333d6_idx_and_more.py,sha256=rZ_mfd_xFu4BglhYxkNuQVqwThZ721kjrlCAn9LkNRo,50969
70
+ bom/migrations/0049_alter_assembly_id_alter_assemblysubparts_id_and_more.py,sha256=l1q5BCNVYWD6Ngf9pGzYq1hQMvvshmdFlm33On63YNc,3247
71
+ bom/migrations/0050_alter_organization_options.py,sha256=n-YGAoUdUxYdh5NY0Zpz2T4CWEOR7tDjSFFk-KZD_tw,432
72
+ bom/migrations/0051_alter_manufacturer_organization_and_more.py,sha256=xjnkZhEgsJDsfK9leBPxxQ2oG_Qf2FdrttTx-lldmjw,1539
73
+ bom/migrations/0052_remove_partrevision_attribute_and_more.py,sha256=WxRL6J8pepMfyuATUj7blr_1LG8Lf1ZdK_kLN1F_F-o,31364
74
+ bom/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
+ bom/static/bom/css/dashboard.css,sha256=saLXUpnVRjsV9HNdsmQD4Eq-zBlm8R2YePhvoc1uifk,245
76
+ bom/static/bom/css/jquery.treetable.css,sha256=H37aGBAAFP3R6v08nui9gKSdLE2VGsGsmlttrIImzfE,652
77
+ bom/static/bom/css/materialize.min.css,sha256=OweaP_Ic6rsV-lysfyS4h-LM6sRwuO3euTYfr6M124g,141841
78
+ bom/static/bom/css/part-info.css,sha256=xQ6zJXHLStwU76UVoYxjG-MjdQzFRwg-jANqrj_KFS0,252
79
+ bom/static/bom/css/style.css,sha256=ZHDMZM5Lzj6u-g84Nb8R8WZq9fMd5uP8BEYUOKbxU44,8110
80
+ bom/static/bom/css/tablesorter-theme.materialize.css,sha256=S7DYXb4vdqdDSUouZ8aIbAxIpemhIzFfeRySdnvvSlc,7435
81
+ bom/static/bom/css/treetable-theme.css,sha256=RxMklK-XfcF90gxekH3IULmyr7_HRA0TdNz_9Xjxuro,24013
82
+ bom/static/bom/doc/sample_part_classes.csv,sha256=nAWhBV9KtHSejLUKD7OKKtbkfUYCeLgCwze9BPstiFo,1694
83
+ bom/static/bom/doc/test_bom.csv,sha256=X0qpsC-sntO7-wCZmG403aMqfw5VLXEn0t27kEhE6Vw,203
84
+ bom/static/bom/doc/test_bom_5_intelligent.csv,sha256=h0GHqpUaIztBT9UUPvYGnpW8HFpXbR9xLCYb0kFdfTE,267
85
+ bom/static/bom/doc/test_full_bom.csv,sha256=JFCdYzm5nweyi-JzTBbAAbq3pg2CgZBBlVQLZ-dvF2I,5908
86
+ bom/static/bom/doc/test_new_parts.csv,sha256=ZDGx8DrxgrqH2bbgCdn0Lapm1eDp2z0yyQdmi-PWQy8,371
87
+ bom/static/bom/doc/test_new_parts_5_intelligent.csv,sha256=0H8gpjE-wJ091nW1Y3hAs1T8fVJ0qrrQP4037I2xXvY,380
88
+ bom/static/bom/img/_ionicons_svg_md-arrow-dropdown.svg,sha256=4wh479Go36xHl3TbfKRaeY9wFUOKqi92XgyWm3mSE2I,127
89
+ bom/static/bom/img/_ionicons_svg_md-arrow-dropright.svg,sha256=zznUpZt-uJamQubtVcUyrrNuzJ42HgYsGAuLq4Z5HFY,127
90
+ bom/static/bom/img/favicon.ico,sha256=16YNCPP6QZC_XwWCxTvLYiIkGcEMCHh8vMS2HTDgRU0,1150
91
+ bom/static/bom/img/google_drive_logo.svg,sha256=W_GF_XX9kvM7A_JiaLPL4wUlqbFNl_w76BLuZmrfxeM,1102
92
+ bom/static/bom/img/indabom.png,sha256=YU_1RGUbNfQpCcnPSkQS6PZY8mbcT3nibnZmRX2QZ18,42071
93
+ bom/static/bom/img/mouser.png,sha256=AUqNusUz-MSDCBoeYfOuklGycQDdShaTPguBd1AUir0,24809
94
+ bom/static/bom/img/octopart_blue.svg,sha256=Hr1HbJ50CX_ZRQTQcMLeRdzIjDhynwKzhq5JpS62IsI,1351
95
+ bom/static/bom/img/google/web/1x/btn_google_signin_dark_disabled_web.png,sha256=nde5HNwP8QPtfl02WFqtMCE17bpg9ctqdXrq13W5HFo,2308
96
+ bom/static/bom/img/google/web/1x/btn_google_signin_dark_focus_web.png,sha256=dTNDb6mf6MRCGfs0bMuAE42jC9ZVVDSVvDOwrWHR400,4185
97
+ bom/static/bom/img/google/web/1x/btn_google_signin_dark_normal_web.png,sha256=O5NF1vtnKSiTx6emEZ5G_vNXxoCTcyzqzEX2twDyQ7g,3983
98
+ bom/static/bom/img/google/web/1x/btn_google_signin_dark_pressed_web.png,sha256=NCai0rdg2yvnEnZT0hbXV45JnF598l_qH4YaVhCNfVs,4236
99
+ bom/static/bom/img/google/web/1x/btn_google_signin_light_disabled_web.png,sha256=nde5HNwP8QPtfl02WFqtMCE17bpg9ctqdXrq13W5HFo,2308
100
+ bom/static/bom/img/google/web/1x/btn_google_signin_light_focus_web.png,sha256=HoPDNi4MHlmMupekYH6F6WisqSIXjxLkwUaMQSHUrc8,4328
101
+ bom/static/bom/img/google/web/1x/btn_google_signin_light_normal_web.png,sha256=ug2zQ8lIS8RrajnJkBae6IDCBLDTIJ0g_O_YVa9t60k,4099
102
+ bom/static/bom/img/google/web/1x/btn_google_signin_light_pressed_web.png,sha256=y8vUwjBaWBtKckIKv7uVVerhCz_tp8feTFrXROg-hM0,4135
103
+ bom/static/bom/img/google/web/2x/btn_google_signin_dark_disabled_web@2x.png,sha256=QmOzmcT_NgU1L7M4dzqBtMNZyY_6Pr-JrlHfqsnn7r4,4897
104
+ bom/static/bom/img/google/web/2x/btn_google_signin_dark_focus_web@2x.png,sha256=kl_yVOixjy3kwp8qG9YRvluO71gEcu7D1coeRWUDyGs,8513
105
+ bom/static/bom/img/google/web/2x/btn_google_signin_dark_normal_web@2x.png,sha256=3Q-a7AKeU9OvJLLc3xnL-8q0ax8aZxHGFivTsZL_y0I,8001
106
+ bom/static/bom/img/google/web/2x/btn_google_signin_dark_pressed_web@2x.png,sha256=20p5OILHBMz5JTWjNCpiD1h0R_KbABeM5lmBVcqRbdw,8483
107
+ bom/static/bom/img/google/web/2x/btn_google_signin_light_disabled_web@2x.png,sha256=QmOzmcT_NgU1L7M4dzqBtMNZyY_6Pr-JrlHfqsnn7r4,4897
108
+ bom/static/bom/img/google/web/2x/btn_google_signin_light_focus_web@2x.png,sha256=OJ9LrQqv4E138ximdLd9FI_xG4neR-Vd73vSH51X3qI,8664
109
+ bom/static/bom/img/google/web/2x/btn_google_signin_light_normal_web@2x.png,sha256=GBHpUDDN3PUYuMLpT5r2LMIdg5v380fJm2mJ489YkyQ,8055
110
+ bom/static/bom/img/google/web/2x/btn_google_signin_light_pressed_web@2x.png,sha256=P1S5Rkb1MtA09NaoOiQ1VG_2pHR2vcJbCk4gi8fRSxM,8265
111
+ bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.eps,sha256=6eqMvyqkm0DfXlJkAG4e_fT42f4MUMsT3bPQdCLDjgY,20286
112
+ bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.svg,sha256=lAtIDLxAxGbtUDxDvaABxWEwQIcK7nvrJ8IW0L1HrOE,1996
113
+ bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.eps,sha256=LTqeKfbI2trwfgaKDFeWUANA-WVacHagOnqr05VnC5I,94048
114
+ bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.svg,sha256=Av1vhiDFmn4ScwxwzmlW6GgMm0cEV2j7_1xujNliMYE,4917
115
+ bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.eps,sha256=zp1hNh2VJYcAlXL6FskiWOW1w0ZlSl2DLWrd9ARwuV8,26465
116
+ bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.svg,sha256=OUCMtjQr3ZEyswF7yfva9TQAn4l3FMLbjjphZEv1VlQ,4779
117
+ bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.eps,sha256=H_KYx7KaOcAv9WXwF8PHW9wFtAq3pG06a2AOTkZ30vQ,26484
118
+ bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.svg,sha256=TDVDA40zpd7up0DyQ80zEzmTnf7Bd2eIJdRXuR2I_ds,4781
119
+ bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.eps,sha256=6eqMvyqkm0DfXlJkAG4e_fT42f4MUMsT3bPQdCLDjgY,20286
120
+ bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.svg,sha256=ZNsc0fGHEF8_W3k_ukvrm9n7aTgcwDZ_17O2Y33WoPg,1998
121
+ bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.eps,sha256=9O7Bak7wDA6AxQ_0_BM8pAdO3YY1TnvG8-mhy3ubS8w,93663
122
+ bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.svg,sha256=XZPXZStHtQr2eBmoLvlGSDgPgX_k4YMRfTEBwWR6KYs,4496
123
+ bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.eps,sha256=xZ8gC5DOCSVA0lAILyuk0tZXHK6Xt9S8gspkc7DyNXc,26080
124
+ bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.svg,sha256=Rk6WGzHe0lGJGEyWiN6lTusosfK8ubtqSdf0ZzuWLBE,4358
125
+ bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.eps,sha256=WUvJDjV62btGu5W1SkKE6juGMOHnA62JJ_0p8C_eOnw,26107
126
+ bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.svg,sha256=CR9QqAnt_NVL2YweEZe4fN6kQ6QQ31nZHxSmwqVs1t0,4360
127
+ bom/static/bom/js/formset-handler.js,sha256=eEFRa1Sln5Uj7P660_nLDcIHr-mri3SewB89Pr0CwPA,2389
128
+ bom/static/bom/js/jquery-3.4.1.min.js,sha256=CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo,88145
129
+ bom/static/bom/js/jquery.ba-floatingscrollbar.min.js,sha256=NptA5rS2zjhkcu26WQJtMr34psHYzUYRsLrSziTusgg,1271
130
+ bom/static/bom/js/jquery.treetable.js,sha256=JEXnh_LuKYxk8CUIT1anQ4es4nfOqC0bds_NjsbMBUI,16611
131
+ bom/static/bom/js/materialize.min.js,sha256=9aWZlbcIvNSnb4BWaUYlFNGylNeTWUL_yffW_3Dbk_o,181114
132
+ bom/templates/bom/account-delete.html,sha256=YjtG5o-sJHuK4Np3vyEliySF-eAwmFn0ROynDdvPMsU,728
133
+ bom/templates/bom/add-manufacturer-part.html,sha256=gM5_-RfgiuQwfns7s1J006d6ypKMbdG8F_kdLGQrJjA,3242
134
+ bom/templates/bom/add-sellerpart.html,sha256=W9rUYrfpqw3yx45S86GIpepdmN_8Xrf23urYexgObBw,4279
135
+ bom/templates/bom/base-menu.html,sha256=bGZ93zRkDlTqdAh-5TRRk7cjBf_e9hg2wQR1URpogMA,822
136
+ bom/templates/bom/base.html,sha256=pMoqT71X9FW1cGUAuOQvNuZqwcH3Z4_6nARt2JUapN8,5797
137
+ bom/templates/bom/bom-action-btn.html,sha256=ovaFLCOWvhVVwgmSo8nKuhvGmqc-oHrZJ7vlguqsFFc,1192
138
+ bom/templates/bom/bom-action-table.html,sha256=JkIoeLmqcAXxggRfn_xA-5_7wZ02ELhXjnkWnK45ats,3041
139
+ bom/templates/bom/bom-base-menu.html,sha256=PeViadG1PKyljvYfPyBFOKgqWhYHBM0tX5Teu5ha0FU,654
140
+ bom/templates/bom/bom-base.html,sha256=SvQOyg8ILULjnJKMaYv6Rf4wS8SNXXIjVY2nl5bm7B4,691
141
+ bom/templates/bom/bom-form-modal.html,sha256=U2EWKjOA41jiScKJHXduJJw_hPNGHtYfdiT3yUuwzRY,1389
142
+ bom/templates/bom/bom-form.html,sha256=1oJetm0fJgPAY1zJ2RNv_Pv9MAja2rjz9pO2bR_UA28,1017
143
+ bom/templates/bom/bom-modal-add-users.html,sha256=1lLgj9acgEkYR3AH177D3xj6meWVmq5MwLDyCg5IV5s,2409
144
+ bom/templates/bom/bom-signup.html,sha256=y0z_kQKCDb91ZdexCmUX1NRKH35l-I_N5f2SgO3G2gI,184
145
+ bom/templates/bom/create-part.html,sha256=UjHx6rkPJl-BRt9gKs5zB3s5Y4vrImDTuD25lvABzAI,3610
146
+ bom/templates/bom/dashboard-menu.html,sha256=4MnFSw0x4w7R0CsSwEDFP3FuZVBFxVChIHr58l3rpSk,799
147
+ bom/templates/bom/dashboard.html,sha256=m-jGdf4aeIcQqbdqSTwzRCIoLldiIIUQrfM-zRJgyvU,16314
148
+ bom/templates/bom/edit-manufacturer-part.html,sha256=4WagGptcVtYCxW1zWvHGeaZSc-0qqEKDRHFyKarqIjU,3518
149
+ bom/templates/bom/edit-part-class.html,sha256=1DV8_bQiYuxYUuqMT2SsKDI4UWnnZnEx5EU7Nw7KJlw,5757
150
+ bom/templates/bom/edit-part.html,sha256=bGfBI3X8eb7iLy_nYDPQRP2CKyp4tNO2-vjakx-_YiM,3051
151
+ bom/templates/bom/edit-quantity-of-measure.html,sha256=79ftu8klYrryj3JrSPEQ3Up5NLh2Qbf4qHp_8qZm5aM,5975
152
+ bom/templates/bom/edit-user-meta.html,sha256=Z4iMA0OErrvVNHbFjLuq7tpO5f6C9ovDpI8-zhC6oX0,3489
153
+ bom/templates/bom/help.html,sha256=hi16fwtVqeWP3Vb3vOpLSKx0ioB1MODJ8lkh6bczfiM,83247
154
+ bom/templates/bom/manufacturer-info.html,sha256=jR98qXONqquEeda92djQgmFfmJiC8jbsGgyXuzJY100,3742
155
+ bom/templates/bom/manufacturers.html,sha256=3ZF8Up-IiAvR6CCmrj_92qPPh7vKrVQaEN05KKX2yrA,5550
156
+ bom/templates/bom/nothing-to-see.html,sha256=cRspNAHlSfv7KjQwp34gANhVqQbXzfFpqtRSm6NoV9s,657
157
+ bom/templates/bom/organization-create.html,sha256=yLrEJH8BlD-W1USk8pYAzTvr-Qw9ZM5rBGYO3n6lCu0,7982
158
+ bom/templates/bom/part-info.html,sha256=236TZ6yTvR5LCravYiuKgzL_CB6nXrd0_C299gvQF8U,26051
159
+ bom/templates/bom/part-revision-display.html,sha256=vudHBodDayjfWZaX4ZMISQXEkmoj3inMJYh4IobePAQ,1625
160
+ bom/templates/bom/part-revision-edit.html,sha256=gOWiRd8Vq0z912_fI9UtBC0yYkcF_lruMQfAWN4kqw0,1624
161
+ bom/templates/bom/part-revision-manage-bom.html,sha256=Nd1CIANnCwYU5KzijlIDfKTXjXqrDOeuwmGOk-CYyrY,5073
162
+ bom/templates/bom/part-revision-new.html,sha256=BMgKBNmFkrsimqSeviP1Rn3huOB_0kfK-77oIyqwItw,2691
163
+ bom/templates/bom/part-revision-release.html,sha256=voG7wmYc1Cm3e_H1IasvQcPuyqnnauqkgvUfom9K65o,2120
164
+ bom/templates/bom/search-help.html,sha256=Wh_tXBJtz0bznk0F1C7OSdRhMe2qpOs9NMCBb2i0CFI,4398
165
+ bom/templates/bom/seller-info.html,sha256=MACsHMYQXMWfRslXuvh9hD2z28VXzVi0DSy4yg7WQMk,3595
166
+ bom/templates/bom/sellers.html,sha256=6ut7LwRMGUKYB4BRjiSpDBP9BGgqT7nxpNQpUVWDvkw,5412
167
+ bom/templates/bom/settings.html,sha256=yuTjS3N4DJYb-yp5d5EanudXEFyaKiXU5muxe7iawko,43649
168
+ bom/templates/bom/signup.html,sha256=tB_x7q3IufSNXsd9Dfh8fdWpkiWSGH2_Zgw749B1PaU,884
169
+ bom/templates/bom/subscription_panel.html,sha256=Ute49APwiXONQW2z0AApJRaSwnwtsYt3_opn0bW5BX8,843
170
+ bom/templates/bom/table_of_contents.html,sha256=7wXWOfmVkk5Itjax5x1PE-g5QjxqmYBr7RW8NgtGRng,1763
171
+ bom/templates/bom/upload-bom.html,sha256=qGlI9HoUNe9H2m5T5TqKWGphaNupz3Y0020h_7GebsU,5230
172
+ bom/templates/bom/upload-parts-help.html,sha256=h2QbPn2QCRD6FVwDwerQSqM72fRFLI5835MsNtrvT7k,5456
173
+ bom/templates/bom/upload-parts.html,sha256=nKAj20gVP_H-ATj_b-sMIKCmVKt2HRogFK0MEM-LGf4,2291
174
+ bom/templates/bom/components/bom-flat.html,sha256=hPjjmVVqIgFB_aGWus0kfqUu8PgL1uJHZZuV_U5Eh0k,7603
175
+ bom/templates/bom/components/bom-indented.html,sha256=0dm5E7WEKYGxzZ5aMDHUaW1HMLbPcorLiBBEHU8usZI,13120
176
+ bom/templates/bom/components/manufacturer-part-list.html,sha256=TLLxECDXp6wNHZ05xCrg2-3rxOou2lortu10UmSHXjM,16281
177
+ bom/templates/bom/components/seller-part-list.html,sha256=nMVo2igTsi7UGeWkVh4s42BflYxT37KOtN1UzrG5bHs,3008
178
+ bom/templates/registration/login.html,sha256=IPqipDds2Xrpg7uRNgd3grGZU29x7NMBg59jpno925M,1095
179
+ bom/third_party_apis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
+ bom/third_party_apis/base_api.py,sha256=0ZXLsn6ZGlcnfmS80ndZfHUDrXwNqod5ANCYHRLw5M0,1838
181
+ bom/third_party_apis/google_drive.py,sha256=8ECE9_8f1KAyNTtkalws-Gl51wxAaTLP40bD5OWsZx4,6495
182
+ bom/third_party_apis/mouser.py,sha256=q2-p0k2n-LNel_QRlfak0kAXT-9hh59k_Pt51PTG09s,5576
183
+ bom/third_party_apis/test_apis.py,sha256=2W0jtTisGTmktC7l556pn9-pZYseTQmmQfo6_4uP4Dc,679
184
+ bom/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
+ bom/views/json_views.py,sha256=LK3-njLZrILLqZxCuE-_sUEC2z2GBxQFRysX67-h14c,2334
186
+ bom/views/views.py,sha256=rYEtIPEJMu1rFSNUARcBlJUe8NgBKoHxl38VWYb8htY,80320
187
+ django_bom-1.262.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
188
+ django_bom-1.262.dist-info/METADATA,sha256=sdIpEpfzuofe9XNw0ZPZt9m6PYMzQtSvDpe9u7q8oZs,7553
189
+ django_bom-1.262.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
190
+ django_bom-1.262.dist-info/top_level.txt,sha256=6zytg4lnnobI96dO-ZEadPOCslrrFmf4t2Pnv-y8x0Y,4
191
+ django_bom-1.262.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.10.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+