odoo-addon-openupgrade-scripts 16.0.1.0.3.190__py3-none-any.whl → 16.0.1.0.3.199__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.
@@ -0,0 +1,179 @@
1
+ # SPDX-FileCopyrightText: 2023 Coop IT Easy SC
2
+ # SPDX-FileCopyrightText: 2024 Tecnativa - Pedro M. Baeza
3
+ # SPDX-License-Identifier: AGPL-3.0-or-later
4
+
5
+ import logging
6
+ import string
7
+
8
+ from openupgradelib import openupgrade
9
+
10
+ _logger = logging.getLogger(__name__)
11
+
12
+ ALPHANUM = string.digits + string.ascii_uppercase
13
+
14
+
15
+ def increment_alphanum(value):
16
+ result = []
17
+ carry = False
18
+ first = True
19
+ for digit in reversed(value):
20
+ # Preserve spaces and hyphens
21
+ if digit in [" ", "-"]:
22
+ result.append(digit)
23
+ elif digit == "Z" and (first or carry):
24
+ result.append("0")
25
+ carry = True
26
+ elif carry or first:
27
+ result.append(ALPHANUM[ALPHANUM.index(digit) + 1])
28
+ carry = False
29
+ else:
30
+ result.append(digit)
31
+ first = False
32
+ if carry:
33
+ result.append("1")
34
+ return "".join(result[::-1])
35
+
36
+
37
+ def fill_prefix(prefix, length, item, spaces, dashes):
38
+ result = prefix + (length * item)
39
+ for index in spaces:
40
+ result = result[:index] + " " + result[index + 1 :]
41
+ for index in dashes:
42
+ result = result[:index] + "-" + result[index + 1 :]
43
+ return result
44
+
45
+
46
+ def prefix_works(prefix, start, end, spaces, dashes):
47
+ # Get the highest and lowest values for the prefix, and compare them against
48
+ # the two extremes.
49
+ fill_length = len(start) - len(prefix)
50
+ highest = fill_prefix(prefix, fill_length, "Z", spaces, dashes)
51
+ lowest = fill_prefix(prefix, fill_length, "0", spaces, dashes)
52
+ return lowest >= start and highest <= end
53
+
54
+
55
+ def next_alphanum(prefix, length, end, spaces, dashes):
56
+ result = increment_alphanum(prefix)
57
+ fill_length = length - len(prefix)
58
+ if fill_length:
59
+ result = fill_prefix(result, length - len(prefix), "0", spaces, dashes)
60
+ if result > end:
61
+ return None
62
+ return result
63
+
64
+
65
+ def find_occurrences(item, iterable):
66
+ return [i for i, val in enumerate(iterable) if val == item]
67
+
68
+
69
+ def range_to_prefixes(start, end):
70
+ if len(start) != len(end):
71
+ raise ValueError(f"{start!r} and {end!r} do not have an equal length")
72
+ # Implementation detail: It is assumed that spaces and dashes occur in
73
+ # identical places in start and end. If this is not true, the whole thing
74
+ # doesn't work.
75
+ spaces = find_occurrences(" ", start)
76
+ dashes = find_occurrences("-", start)
77
+ if find_occurrences(" ", end) != spaces or find_occurrences("-", end) != dashes:
78
+ raise ValueError(
79
+ f"{start!r} and {end!r} do not have spaces or dashes in identical"
80
+ f" locations"
81
+ )
82
+ prefixes = set()
83
+ not_prefixes = set()
84
+ alphanum = start
85
+ while alphanum:
86
+ prefix = alphanum
87
+ candidate = prefix
88
+ while prefix:
89
+ if prefix in not_prefixes:
90
+ break
91
+ if prefix_works(prefix, start, end, spaces, dashes):
92
+ candidate = prefix
93
+ prefix = prefix[:-1]
94
+ else:
95
+ not_prefixes.add(prefix)
96
+ break
97
+ prefixes.add(candidate)
98
+ alphanum = next_alphanum(candidate, len(start), end, spaces, dashes)
99
+ return prefixes
100
+
101
+
102
+ def numerical_range_to_prefixes(min_, max_):
103
+ """Adapted from https://github.com/voronind/range-regex."""
104
+
105
+ def fill_by_nines(integer, nines_count):
106
+ return int(str(integer)[:-nines_count] + "9" * nines_count)
107
+
108
+ def fill_by_zeros(integer, zeros_count):
109
+ return integer - integer % 10**zeros_count
110
+
111
+ def split_to_ranges(min_, max_):
112
+ stops = {max_}
113
+ nines_count = 1
114
+ stop = fill_by_nines(min_, nines_count)
115
+ while min_ <= stop < max_:
116
+ stops.add(stop)
117
+ nines_count += 1
118
+ stop = fill_by_nines(min_, nines_count)
119
+ zeros_count = 1
120
+ stop = fill_by_zeros(max_ + 1, zeros_count) - 1
121
+ while min_ < stop <= max_:
122
+ stops.add(stop)
123
+ zeros_count += 1
124
+ stop = fill_by_zeros(max_ + 1, zeros_count) - 1
125
+ stops = list(stops)
126
+ stops.sort()
127
+ return stops
128
+
129
+ subpatterns = []
130
+ start = min_
131
+ for stop in split_to_ranges(min_, max_):
132
+ pattern = ""
133
+ any_digit_count = 0
134
+ for start_digit, stop_digit in zip(str(start), str(stop)):
135
+ if start_digit == stop_digit:
136
+ pattern += start_digit
137
+ elif start_digit != "0" or stop_digit != "9":
138
+ pattern += "[{}-{}]".format(start_digit, stop_digit)
139
+ else:
140
+ any_digit_count += 1
141
+ if any_digit_count:
142
+ pattern += r"\d"
143
+ if any_digit_count > 1:
144
+ pattern += "{{{}}}".format(any_digit_count)
145
+ subpatterns.append(pattern)
146
+ start = stop + 1
147
+ return subpatterns
148
+
149
+
150
+ def _convert_carrier_zip_ranges(env):
151
+ """Transform the previous zip_from and zip_to fields to the new prefixes system."""
152
+ env.cr.execute(
153
+ "SELECT id, zip_from, zip_to FROM delivery_carrier "
154
+ "WHERE zip_from IS NOT NULL AND zip_to IS NOT NULL"
155
+ )
156
+ for carrier_id, zip_from, zip_to in env.cr.fetchall():
157
+ if zip_from.isnumeric() and zip_to.isnumeric():
158
+ prefixes = numerical_range_to_prefixes(int(zip_from), int(zip_to))
159
+ else:
160
+ try:
161
+ prefixes = range_to_prefixes(zip_from, zip_to)
162
+ except Exception as error:
163
+ _logger.error(
164
+ f"Failed to convert the zip range '{zip_from} --"
165
+ f" {zip_to}'of delivery method {carrier_id} to a set of"
166
+ f" prefixes. Got error:\n\n{error}"
167
+ )
168
+ continue
169
+ carrier = env["delivery.carrier"].browse(carrier_id)
170
+ for prefix in prefixes:
171
+ prefix_record = env["delivery.zip.prefix"].search([("name", "=", prefix)])
172
+ if not prefix_record:
173
+ prefix_record = env["delivery.zip.prefix"].create({"name": prefix})
174
+ carrier.zip_prefix_ids |= prefix_record
175
+
176
+
177
+ @openupgrade.migrate()
178
+ def migrate(env, version):
179
+ _convert_carrier_zip_ranges(env)
@@ -0,0 +1,35 @@
1
+ ---Models in module 'delivery'---
2
+ new model delivery.zip.prefix
3
+ ---Fields in module 'delivery'---
4
+ delivery / delivery.carrier / carrier_description (text) : NEW
5
+ # NOTHING TO DO: New feature for showing in the sales order a description for the delivery method.
6
+
7
+ delivery / delivery.carrier / shipping_insurance (integer) : NEW hasdefault: default
8
+ # NOTHING TO DO: New feature for indicating to the providers the insurance percentage covered.
9
+
10
+ delivery / delivery.carrier / zip_from (char) : DEL
11
+ delivery / delivery.carrier / zip_to (char) : DEL
12
+ delivery / delivery.carrier / zip_prefix_ids (many2many) : NEW relation: delivery.zip.prefix
13
+ delivery / delivery.zip.prefix / name (char) : NEW required
14
+ # DONE: post-migration: Extract prefixes as regexp.
15
+
16
+ delivery / product.template / country_of_origin (many2one) : NEW relation: res.country
17
+ # NOTHING TO DO: New field for Intrastat. May should be filled from OCA Intrastat modules
18
+
19
+ delivery / stock.move.line / carrier_name (char) : NEW isrelated: related, stored
20
+ # NOTHING TO DO: Related stored already handled in a fast way by ORM.
21
+
22
+ ---XML records in module 'delivery'---
23
+ NEW ir.actions.act_window: delivery.action_delivery_zip_prefix_list
24
+ NEW ir.model.access: delivery.access_delivery_carrier_system
25
+ NEW ir.model.access: delivery.access_delivery_zip_prefix
26
+ NEW ir.model.access: delivery.access_delivery_zip_prefix_stock_manager
27
+ NEW ir.model.constraint: delivery.constraint_delivery_carrier_shipping_insurance_is_percentage
28
+ NEW ir.model.constraint: delivery.constraint_delivery_zip_prefix_name_uniq
29
+ NEW ir.ui.menu: delivery.menu_delivery_zip_prefix
30
+ NEW ir.ui.view: delivery.delivery_report_saleorder_document
31
+ NEW ir.ui.view: delivery.label_package_template_view_delivery
32
+ NEW ir.ui.view: delivery.stock_move_line_view_search_delivery
33
+ NEW ir.ui.view: delivery.view_picking_type_form_delivery
34
+ NEW ir.ui.view: delivery.view_stock_rule_form_delivery
35
+ # NOTHING TO DO: noupdate=0 records handled by ORM.
@@ -0,0 +1,15 @@
1
+ ---Models in module 'product_expiry'---
2
+ ---Fields in module 'product_expiry'---
3
+ product_expiry / stock.lot / alert_date (datetime) : NEW hasdefault: compute
4
+ product_expiry / stock.lot / expiration_date (datetime) : NEW hasdefault: compute
5
+ product_expiry / stock.lot / product_expiry_reminded (boolean): NEW
6
+ product_expiry / stock.lot / removal_date (datetime) : NEW hasdefault: compute
7
+ product_expiry / stock.lot / use_date (datetime) : NEW hasdefault: compute
8
+ product_expiry / stock.production.lot / alert_date (datetime) : DEL
9
+ product_expiry / stock.production.lot / expiration_date (datetime) : DEL
10
+ product_expiry / stock.production.lot / product_expiry_reminded (boolean): DEL
11
+ product_expiry / stock.production.lot / removal_date (datetime) : DEL
12
+ product_expiry / stock.production.lot / use_date (datetime) : DEL
13
+ ---XML records in module 'product_expiry'---
14
+ NEW ir.ui.view: product_expiry.report_package_barcode_expiry
15
+ # Nothing to do.
@@ -0,0 +1,6 @@
1
+ ---Models in module 'stock_dropshipping'---
2
+ ---Fields in module 'stock_dropshipping'---
3
+ ---XML records in module 'stock_dropshipping'---
4
+ DEL stock.location.route: stock_dropshipping.route_drop_shipping (noupdate)
5
+ NEW stock.route: stock_dropshipping.route_drop_shipping (noupdate)
6
+ # Nothing to do.
@@ -0,0 +1,5 @@
1
+ ---Models in module 'website_sale_delivery'---
2
+ ---Fields in module 'website_sale_delivery'---
3
+ ---XML records in module 'website_sale_delivery'---
4
+ ---nothing has changed in this module--
5
+ # NOTHING TO DO
@@ -0,0 +1,11 @@
1
+ ---Models in module 'website_sale_stock'---
2
+ ---Fields in module 'website_sale_stock'---
3
+ website_sale_stock / product.product / stock_notification_partner_ids (many2many): NEW relation: res.partner
4
+ website_sale_stock / sale.order / warning_stock (char) : DEL
5
+ website_sale_stock / sale.order.line / warning_stock (char) : DEL
6
+ ---XML records in module 'website_sale_stock'---
7
+ NEW ir.cron: website_sale_stock.ir_cron_send_availability_email
8
+ NEW ir.ui.view: website_sale_stock.availability_email_body
9
+ NEW ir.ui.view: website_sale_stock.product_pages_tree_view
10
+ DEL ir.ui.view: website_sale_stock.website_sale_stock_payment
11
+ # NOTHING TO DO
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-openupgrade-scripts
3
- Version: 16.0.1.0.3.190
3
+ Version: 16.0.1.0.3.199
4
4
  Summary: Module that contains all the migrations analysis and scripts for migrate Odoo SA modules.
5
5
  Home-page: https://github.com/OCA/OpenUpgrade
6
6
  Author: Odoo Community Association (OCA)
@@ -90,7 +90,9 @@ odoo/addons/openupgrade_scripts/scripts/crm_iap_mine/16.0.1.2/upgrade_analysis_w
90
90
  odoo/addons/openupgrade_scripts/scripts/crm_livechat/16.0.1.0/upgrade_analysis.txt,sha256=dLR4dzjp06adT5zhyuGREDVvj3587_IJNIaPsiyjBxY,1136
91
91
  odoo/addons/openupgrade_scripts/scripts/crm_livechat/16.0.1.0/upgrade_analysis_work.txt,sha256=m9FHu7awHx6VJpfQfE2qeh1ldIuvzJyuK9_zzZQpUcg,1193
92
92
  odoo/addons/openupgrade_scripts/scripts/data_recycle/16.0.1.3/upgrade_analysis.txt,sha256=9qPUSS6VGypt-BdA2-W3aTMDZx_6hBGesGriGEQqtC8,3681
93
+ odoo/addons/openupgrade_scripts/scripts/delivery/16.0.1.0/post-migration.py,sha256=p7Dh98rfGP7rG0fiRzRLtGxS7g4CM9py5V_TbBMYCiI,6075
93
94
  odoo/addons/openupgrade_scripts/scripts/delivery/16.0.1.0/upgrade_analysis.txt,sha256=8_3hq28eUw-RTZgQNG81Bo86Hwhup438SCog0XHXDRo,1642
95
+ odoo/addons/openupgrade_scripts/scripts/delivery/16.0.1.0/upgrade_analysis_work.txt,sha256=h53LdOgrg5uvxLS1Rwj9pfvJ4o0GHcJN-sB98nVW2Xk,2105
94
96
  odoo/addons/openupgrade_scripts/scripts/delivery_mondialrelay/16.0.0.1/upgrade_analysis.txt,sha256=b8I5lcmNozL7-QxXWat4eRogSuXBKJ2yoDt_hOP1Kqk,186
95
97
  odoo/addons/openupgrade_scripts/scripts/delivery_stock_picking_batch/16.0.1.0/upgrade_analysis.txt,sha256=eXuu3u85QNBmHk3fmCf4DaxbbyI6nE5qzqyol70x5X4,433
96
98
  odoo/addons/openupgrade_scripts/scripts/digest/16.0.1.1/noupdate_changes.xml,sha256=QwPLT-f8-k6EgHup1SQShECU9bJOzBxmRYrvhDqQfzw,13555
@@ -447,6 +449,7 @@ odoo/addons/openupgrade_scripts/scripts/product/16.0.1.2/upgrade_analysis.txt,sh
447
449
  odoo/addons/openupgrade_scripts/scripts/product/16.0.1.2/upgrade_analysis_work.txt,sha256=Xl8MPQb9BNot_oSzOwPuvuXOKwXkPYszbUkj7rWIEww,1856
448
450
  odoo/addons/openupgrade_scripts/scripts/product_email_template/16.0.1.0/upgrade_analysis.txt,sha256=Dx6pySBrbJMWmtd4YMb2kJvvwUS13cMjXP0r6zLfLWk,189
449
451
  odoo/addons/openupgrade_scripts/scripts/product_expiry/16.0.1.0/upgrade_analysis.txt,sha256=1G_bk0XlkgaflIKoQAWHO0_tc5rOiHI_QGPCS_jR7gw,186
452
+ odoo/addons/openupgrade_scripts/scripts/product_expiry/16.0.1.0/upgrade_analysis_work.txt,sha256=XL1CCMWR035bqXrCNm_VoU-llJgIh7qQWzIEdDkQsak,1089
450
453
  odoo/addons/openupgrade_scripts/scripts/product_images/16.0.1.0/upgrade_analysis.txt,sha256=ZFdJzO3tOMvoa1XV86Kzqw5uqUSHhXmQjlN8ebFkbS8,165
451
454
  odoo/addons/openupgrade_scripts/scripts/product_margin/16.0.1.0/upgrade_analysis.txt,sha256=4ttHOXP24HQX80aD5j6gIjzZBzhAD599KgvOxkR9wmM,165
452
455
  odoo/addons/openupgrade_scripts/scripts/product_margin/16.0.1.0/upgrade_analysis_work.txt,sha256=4ttHOXP24HQX80aD5j6gIjzZBzhAD599KgvOxkR9wmM,165
@@ -552,6 +555,7 @@ odoo/addons/openupgrade_scripts/scripts/stock_account/16.0.1.1/pre-migration.py,
552
555
  odoo/addons/openupgrade_scripts/scripts/stock_account/16.0.1.1/upgrade_analysis.txt,sha256=--ShQGHEIfJ3hxITbLby_mqEszI05hutMWsZekrqnd8,805
553
556
  odoo/addons/openupgrade_scripts/scripts/stock_account/16.0.1.1/upgrade_analysis_work.txt,sha256=ns6T8z3WXky-hn5FZNFLsxf3Uz7JIORzWT300uY_Aw8,865
554
557
  odoo/addons/openupgrade_scripts/scripts/stock_dropshipping/16.0.1.0/upgrade_analysis.txt,sha256=UHTDTHm0mdmngE_imxwMmmN1sOQ-LrBlYh9yv-bGU3Q,177
558
+ odoo/addons/openupgrade_scripts/scripts/stock_dropshipping/16.0.1.0/upgrade_analysis_work.txt,sha256=olsigNs2-E6pfkEPc6UXr54N4B0tPGG7V4AoIbKwo1Q,297
555
559
  odoo/addons/openupgrade_scripts/scripts/stock_landed_costs/16.0.1.1/upgrade_analysis.txt,sha256=WFU81Vt8XuuK9wkxAIUUtohVnUdyOzBtg08-3QGxKh8,177
556
560
  odoo/addons/openupgrade_scripts/scripts/stock_landed_costs/16.0.1.1/upgrade_analysis_work.txt,sha256=Go5HHuQCzgwpBFv_trXxF6i0RpzG2eK_HP4831Lcn6A,193
557
561
  odoo/addons/openupgrade_scripts/scripts/stock_picking_batch/16.0.1.0/upgrade_analysis.txt,sha256=-vWDvtNd94zMYD8LIYGJT_AiaYq4lZvCh4Jv9vL4paE,1327
@@ -635,6 +639,7 @@ odoo/addons/openupgrade_scripts/scripts/website_sale_autocomplete/16.0.1.0/upgra
635
639
  odoo/addons/openupgrade_scripts/scripts/website_sale_comparison/16.0.1.0/upgrade_analysis.txt,sha256=GbaGMWkY1ZxaQ0L1nUb_LzOFrMALn8fYYBLgMQ_Zl7Y,330
636
640
  odoo/addons/openupgrade_scripts/scripts/website_sale_comparison/16.0.1.0/upgrade_analysis_work.txt,sha256=OfXTn6rnFuOlRjIGn4a1W3pTDF-d23eWYAA599Da-bo,410
637
641
  odoo/addons/openupgrade_scripts/scripts/website_sale_delivery/16.0.1.0/upgrade_analysis.txt,sha256=yYL2gIgN2tVOGbUJmQmy2whpvKNggTmij4ZLDEVozvg,186
642
+ odoo/addons/openupgrade_scripts/scripts/website_sale_delivery/16.0.1.0/upgrade_analysis_work.txt,sha256=FvJYgjfqYqFPK1axHqCNC8t9CpXFsjIAmaWivVq1aZQ,202
638
643
  odoo/addons/openupgrade_scripts/scripts/website_sale_delivery_mondialrelay/16.0.0.1/upgrade_analysis.txt,sha256=BCxNxJ48VdYt5bV337TfePuo0MN-uhhRUqYwC-bPp0c,433
639
644
  odoo/addons/openupgrade_scripts/scripts/website_sale_digital/16.0.0.1/upgrade_analysis.txt,sha256=ow2g8lrO5k51Ec1gCFTG5_8D9pnfJAzxeVyk5au2qiA,183
640
645
  odoo/addons/openupgrade_scripts/scripts/website_sale_loyalty/16.0.1.0/upgrade_analysis.txt,sha256=M753BVZ9F-ZP039qyWr2V8SMeehrt8iizS0T-cwNVmU,3308
@@ -643,6 +648,7 @@ odoo/addons/openupgrade_scripts/scripts/website_sale_product_configurator/16.0.0
643
648
  odoo/addons/openupgrade_scripts/scripts/website_sale_product_configurator/16.0.0.1/upgrade_analysis_work.txt,sha256=L05xg6wofXTrLPbGNzGo8KLg0fNr_YdcUMWCGn6VQ8A,367
644
649
  odoo/addons/openupgrade_scripts/scripts/website_sale_slides/16.0.1.0/upgrade_analysis.txt,sha256=6Gl-9-udHVlwU8JWm5SnagoSi2uVGVy4igg32wX30c0,952
645
650
  odoo/addons/openupgrade_scripts/scripts/website_sale_stock/16.0.1.0/upgrade_analysis.txt,sha256=H9oYnZiyYkO8H9fuz638FK7b6XmIlVGTXB8_cklEteo,667
651
+ odoo/addons/openupgrade_scripts/scripts/website_sale_stock/16.0.1.0/upgrade_analysis_work.txt,sha256=MgwPB4tAIDgZJytIznF7TORVjtjZK0j2tsoSLgbB0kA,683
646
652
  odoo/addons/openupgrade_scripts/scripts/website_sale_stock_wishlist/16.0.1.0/upgrade_analysis.txt,sha256=Su-F698eC2SIY29887O6dZDUZxFp_ckwSXM5C9xKRCk,550
647
653
  odoo/addons/openupgrade_scripts/scripts/website_sale_wishlist/16.0.1.0/upgrade_analysis.txt,sha256=dkoH9dzqNnIfxVpZY78SGzUVWymC_Xt9Hb7bdKIjzww,186
648
654
  odoo/addons/openupgrade_scripts/scripts/website_sale_wishlist/16.0.1.0/upgrade_analysis_work.txt,sha256=FeYUhmHUNRNohMlZL8X4_UtEaHWR9eyXZ_RZ6f-ljpU,202
@@ -658,7 +664,7 @@ odoo/addons/openupgrade_scripts/scripts/website_twitter/16.0.1.0/upgrade_analysi
658
664
  odoo/addons/openupgrade_scripts/static/description/banner.png,sha256=KTIBu4gfxeZVw9zjs_fivTgFEOeaAorlBxajmCA1p6k,26859
659
665
  odoo/addons/openupgrade_scripts/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
660
666
  odoo/addons/openupgrade_scripts/static/description/index.html,sha256=IOWtZdzr_jN_Dja8HYIfzIxrO8NE5pFgazKJtPsLKw0,12678
661
- odoo_addon_openupgrade_scripts-16.0.1.0.3.190.dist-info/METADATA,sha256=ru6ZtP2m4WHPkrMdjZ6iBvEa-5i9OActR6un07J0z4k,3810
662
- odoo_addon_openupgrade_scripts-16.0.1.0.3.190.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
663
- odoo_addon_openupgrade_scripts-16.0.1.0.3.190.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
664
- odoo_addon_openupgrade_scripts-16.0.1.0.3.190.dist-info/RECORD,,
667
+ odoo_addon_openupgrade_scripts-16.0.1.0.3.199.dist-info/METADATA,sha256=MNpdvR-TMWEUJh8YgVooZiUxzyJCHyRyWYdoLpxP8zk,3810
668
+ odoo_addon_openupgrade_scripts-16.0.1.0.3.199.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
669
+ odoo_addon_openupgrade_scripts-16.0.1.0.3.199.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
670
+ odoo_addon_openupgrade_scripts-16.0.1.0.3.199.dist-info/RECORD,,