esgpull 0.9.3__py3-none-any.whl → 0.9.4__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.
esgpull/context.py CHANGED
@@ -134,18 +134,46 @@ class Result:
134
134
  solr_terms: list[str] = []
135
135
  for name, values in self.query.selection.items():
136
136
  if index.is_bridge():
137
- value_term = " ".join(quote_str(v) for v in values)
137
+ if name == "query":
138
+ solr_terms.append(" ".join(values))
139
+ elif name.startswith("!"):
140
+ value_term = " ".join(quote_str(v) for v in values)
141
+ if len(values) > 1:
142
+ value_term = f"({value_term})"
143
+ solr_terms.append(f"NOT ({name[1:]}:{value_term})")
144
+ else:
145
+ has_wildcard = any("*" in v for v in values)
146
+ no_wildcard = any("*" not in v for v in values)
147
+
148
+ if has_wildcard and no_wildcard:
149
+ logger.warning(
150
+ (
151
+ f"Facet {name} has mixed wildcard/non-wildcard values. "
152
+ "Non-wildcard values may match partially."
153
+ )
154
+ )
155
+ value_term = " ".join(quote_str(v) for v in values)
156
+ if len(values) > 1:
157
+ value_term = f"({value_term})"
158
+ solr_terms.append(f"{name}:{value_term}")
159
+ elif has_wildcard:
160
+ value_term = " ".join(quote_str(v) for v in values)
161
+ if len(values) > 1:
162
+ value_term = f"({value_term})"
163
+ solr_terms.append(f"{name}:{value_term}")
164
+ else:
165
+ params[name] = ",".join(values)
138
166
  else:
139
167
  value_term = " ".join(values)
140
- if name == "query": # freetext case
141
- solr_terms.append(value_term)
142
- else:
143
- if len(values) > 1:
144
- value_term = f"({value_term})"
145
- if name.startswith("!"):
146
- solr_terms.append(f"NOT ({name[1:]}:{value_term})")
168
+ if name == "query":
169
+ solr_terms.append(value_term)
147
170
  else:
148
- solr_terms.append(f"{name}:{value_term}")
171
+ if len(values) > 1:
172
+ value_term = f"({value_term})"
173
+ if name.startswith("!"):
174
+ solr_terms.append(f"NOT ({name[1:]}:{value_term})")
175
+ else:
176
+ solr_terms.append(f"{name}:{value_term}")
149
177
  if solr_terms:
150
178
  params["query"] = " AND ".join(solr_terms)
151
179
  for name, option in self.query.options.items(use_default=True):
@@ -0,0 +1,28 @@
1
+ """update tables
2
+
3
+ Revision ID: 0.9.4
4
+ Revises: 0.9.3
5
+ Create Date: 2026-01-14 10:49:04.536961
6
+
7
+ """
8
+ from alembic import op
9
+ import sqlalchemy as sa
10
+
11
+
12
+ # revision identifiers, used by Alembic.
13
+ revision = '0.9.4'
14
+ down_revision = '0.9.3'
15
+ branch_labels = None
16
+ depends_on = None
17
+
18
+
19
+ def upgrade() -> None:
20
+ # ### commands auto generated by Alembic - please adjust! ###
21
+ pass
22
+ # ### end Alembic commands ###
23
+
24
+
25
+ def downgrade() -> None:
26
+ # ### commands auto generated by Alembic - please adjust! ###
27
+ pass
28
+ # ### end Alembic commands ###
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: esgpull
3
- Version: 0.9.3
3
+ Version: 0.9.4
4
4
  Summary: ESGF data discovery, download, replication tool
5
5
  Project-URL: Repository, https://github.com/ESGF/esgf-download
6
6
  Project-URL: Documentation, https://esgf.github.io/esgf-download/
@@ -1,7 +1,7 @@
1
1
  esgpull/__init__.py,sha256=XItFDIMNmFUNNcKtUgXdfmGwUIWt4AAv0a4mZkfj5P8,240
2
2
  esgpull/config.py,sha256=APA3IqYyz_TY2FAm_TNSLsFIkOxmdGnbFLnd2H2YXIs,12042
3
3
  esgpull/constants.py,sha256=VlgRJDth5aDjyTopJ2W2JU83353XcRf18RIFAZt7yck,1263
4
- esgpull/context.py,sha256=JEnIQGF1owl56n0azF8K3GNIU8TgeMu31NSfTqVAGQg,25123
4
+ esgpull/context.py,sha256=LGGnWnKuk9xkUvf5EX3NLbKKRlGvtRe9blps7C-dkTo,26558
5
5
  esgpull/database.py,sha256=1wGeNbJp0gOLo5Q1N53JfiwVbZ8nfvZVkKlvEaJwOpU,6716
6
6
  esgpull/download.py,sha256=aR2c_SOuZtgX7tI2a9_N4Mn86ABq1k7Mxq_BdojFrP4,5600
7
7
  esgpull/esgpull.py,sha256=mqvrXnyCzTSU3j_u5pYidpLs2j86TEFDPX6MhCnNfMs,19458
@@ -71,6 +71,7 @@ esgpull/migrations/versions/0.9.0_update_tables.py,sha256=nXfPiyuseD5BXvu59zkeST
71
71
  esgpull/migrations/versions/0.9.1_update_tables.py,sha256=ITewU2qgdCwhorsl2d_t7ENt_6KecG3z5xfRr_LwrtY,541
72
72
  esgpull/migrations/versions/0.9.2_update_tables.py,sha256=aux--HPA_jUtvk7Zb2ZRXRhnRLT-whqZ0lLWt8Apyac,541
73
73
  esgpull/migrations/versions/0.9.3_update_tables.py,sha256=-k1CneOa7OTO6xPZ8uR0ccy-4B8TU3kM12-oYKFEOlA,541
74
+ esgpull/migrations/versions/0.9.4_update_tables.py,sha256=tvvXvov7ggXO9A8B5399bixCuM9fSni1SHkJXa5f5II,541
74
75
  esgpull/migrations/versions/14c72daea083_query_add_column_updated_at.py,sha256=MKqz0tfwGwRkgP4QDd-cpUmXCVr4tM_wlC2BfxqJ1_w,1031
75
76
  esgpull/migrations/versions/c7c8541fa741_query_add_column_added_at.py,sha256=Al_o7fDmoRqc9vBCQgtgrNbSPIOBxdMZ5T-ztakqVeY,1033
76
77
  esgpull/migrations/versions/d14f179e553c_file_add_composite_index_dataset_id_.py,sha256=0vJvttugWmgKns4g-K4i3EU6eid2Z_K2e3H6Ktevf7c,860
@@ -87,8 +88,8 @@ esgpull/models/sql.py,sha256=K8Nre5HKFPjkRzUUW6p6Qk7aG8upbw8C3pnmCFlg7d8,8942
87
88
  esgpull/models/synda_file.py,sha256=6o5unPhzVJGnbpA2MxcS0r-hrBwocHYVnLrqjSGtmuk,2387
88
89
  esgpull/models/tag.py,sha256=5CQDB9rAeCqog63ec9LPFN46HOFNkHPy-maY4gkBQ3E,461
89
90
  esgpull/models/utils.py,sha256=exwlIlIKYjhhfUE82w1kU_HeSQOSY97PTvpkhW0udMA,1631
90
- esgpull-0.9.3.dist-info/METADATA,sha256=0wlDuo4TCJskBSO9v4FRuoLTAm7531jOPJDQAQJWBP4,3818
91
- esgpull-0.9.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
92
- esgpull-0.9.3.dist-info/entry_points.txt,sha256=vyh7HvFrCp4iyMrTkDoSF3weaYrlNj2OJe0Fq5q4QB4,45
93
- esgpull-0.9.3.dist-info/licenses/LICENSE,sha256=lUqGPGWDHHxjkUDuYgjLLY2XQXXn_EHU7fnrQWHGugc,1540
94
- esgpull-0.9.3.dist-info/RECORD,,
91
+ esgpull-0.9.4.dist-info/METADATA,sha256=MKviUWHQuaz6SVYBYuWPky-4BZ3LBRyWaET0A3i4JaA,3818
92
+ esgpull-0.9.4.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
93
+ esgpull-0.9.4.dist-info/entry_points.txt,sha256=vyh7HvFrCp4iyMrTkDoSF3weaYrlNj2OJe0Fq5q4QB4,45
94
+ esgpull-0.9.4.dist-info/licenses/LICENSE,sha256=lUqGPGWDHHxjkUDuYgjLLY2XQXXn_EHU7fnrQWHGugc,1540
95
+ esgpull-0.9.4.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any