mergeron 2024.739099.1__tar.gz → 2024.739099.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mergeron might be problematic. Click here for more details.

Files changed (32) hide show
  1. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/PKG-INFO +1 -1
  2. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/pyproject.toml +1 -1
  3. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/__init__.py +1 -1
  4. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/core/guidelines_boundary_functions.py +3 -3
  5. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/gen/__init__.py +1 -1
  6. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/gen/_data_generation_functions.py +1 -6
  7. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/gen/enforcement_stats.py +3 -3
  8. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/gen/upp_tests.py +5 -17
  9. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/README.rst +0 -0
  10. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/License.txt +0 -0
  11. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/core/__init__.py +0 -0
  12. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/core/damodaran_margin_data.py +0 -0
  13. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/core/ftc_merger_investigations_data.py +0 -0
  14. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/core/guidelines_boundaries.py +0 -0
  15. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/core/guidelines_boundary_functions_extra.py +0 -0
  16. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/core/pseudorandom_numbers.py +0 -0
  17. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/data/__init__.py +0 -0
  18. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/data/damodaran_margin_data.xls +0 -0
  19. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/data/damodaran_margin_data_dict.msgpack +0 -0
  20. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/data/ftc_invdata.msgpack +0 -0
  21. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/data/jinja2_LaTeX_templates/clrrate_cis_summary_table_template.tex.jinja2 +0 -0
  22. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/data/jinja2_LaTeX_templates/ftcinvdata_byhhianddelta_table_template.tex.jinja2 +0 -0
  23. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/data/jinja2_LaTeX_templates/ftcinvdata_summary_table_template.tex.jinja2 +0 -0
  24. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/data/jinja2_LaTeX_templates/ftcinvdata_summarypaired_table_template.tex.jinja2 +0 -0
  25. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/data/jinja2_LaTeX_templates/mergeron.cls +0 -0
  26. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/data/jinja2_LaTeX_templates/mergeron_table_collection_template.tex.jinja2 +0 -0
  27. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/data/jinja2_LaTeX_templates/setup_tikz_tables.tex +0 -0
  28. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/demo/__init__.py +0 -0
  29. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/demo/visualize_empirical_margin_distribution.py +0 -0
  30. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/gen/data_generation.py +0 -0
  31. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/gen/market_sample.py +0 -0
  32. {mergeron-2024.739099.1 → mergeron-2024.739099.2}/src/mergeron/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mergeron
3
- Version: 2024.739099.1
3
+ Version: 2024.739099.2
4
4
  Summary: Merger Policy Analysis using Python
5
5
  License: MIT
6
6
  Keywords: merger policy analysis,merger guidelines,merger screening,policy presumptions,concentration standards,upward pricing pressure,GUPPI
@@ -13,7 +13,7 @@ keywords = [
13
13
  "upward pricing pressure",
14
14
  "GUPPI",
15
15
  ]
16
- version = "2024.739099.1"
16
+ version = "2024.739099.2"
17
17
 
18
18
  # Classifiers list: https://pypi.org/classifiers/
19
19
  classifiers = [
@@ -9,7 +9,7 @@ from numpy.typing import NBitBase, NDArray
9
9
 
10
10
  _PKG_NAME: str = Path(__file__).parent.stem
11
11
 
12
- VERSION = "2024.739099.1"
12
+ VERSION = "2024.739099.2"
13
13
 
14
14
  __version__ = VERSION
15
15
 
@@ -667,7 +667,7 @@ def shrratio_boundary_max(
667
667
  """
668
668
 
669
669
  # _r_val is not needed for max boundary, but is specified for consistency
670
- # of function call with other shrratio_mgnsym_boundary functions
670
+ # of function call with other share-ratio boundary functions
671
671
  del _r_val
672
672
  _delta_star = mpf(f"{_delta_star}")
673
673
  _s_intcpt = _delta_star
@@ -883,9 +883,9 @@ def boundary_plot(*, mktshares_plot_flag: bool = True) -> tuple[Any, ...]:
883
883
  mktshares_plot_flag: bool = False,
884
884
  mktshares_axlbls_flag: bool = False,
885
885
  ) -> mpa.Axes:
886
- # Set the width of axis gridlines, and tick marks:
886
+ # Set the width of axis grid lines, and tick marks:
887
887
  # both axes, both major and minor ticks
888
- # Frame, grid, and facecolor
888
+ # Frame, grid, and face color
889
889
  for _spos0 in "left", "bottom":
890
890
  _ax1.spines[_spos0].set_linewidth(0.5)
891
891
  _ax1.spines[_spos0].set_zorder(5)
@@ -1,5 +1,5 @@
1
1
  """
2
- Defines constants and containers for industry data generation and testing
2
+ Defines constants and containers for industry data generation and testing.
3
3
 
4
4
  """
5
5
 
@@ -148,7 +148,7 @@ def _gen_market_shares_uniform(
148
148
  )
149
149
  _mrng.fill()
150
150
  # Convert draws on U[0, 1] to Uniformly-distributed draws on simplex, s_1 + s_2 <= 1
151
- _frmshr_array = np.sort(_frmshr_array, axis=1)
151
+ _frmshr_array.sort(axis=1)
152
152
  _frmshr_array = np.column_stack((
153
153
  _frmshr_array[:, 0],
154
154
  _frmshr_array[:, 1] - _frmshr_array[:, 0],
@@ -471,11 +471,6 @@ def _gen_margin_price_data(
471
471
  1 + _m1_nr,
472
472
  )
473
473
  _mnl_test_array = (_pcm_array[:, [1]] >= 0) & (_pcm_array[:, [1]] <= 1)
474
- else:
475
- # Generate i.i.d. PCMs
476
- # Construct price_array = 1/ (1 - pcm_array)
477
- # Rgenerate MNL test
478
- pass
479
474
 
480
475
  _margin_data = MarginDataSample(_pcm_array[:, :2], _mnl_test_array)
481
476
  del _price_array_here
@@ -121,7 +121,7 @@ if not (_out_path := DATA_DIR.joinpath(f"{_PKG_NAME}.cls")).is_file():
121
121
 
122
122
 
123
123
  if not (_DOTTEX := DATA_DIR / Rf"{_PKG_NAME}_TikZTableSettings.tex").is_file():
124
- # Write to dottex
124
+ # Write to LaTeX table settings file
125
125
  with resources.as_file(
126
126
  resources.files(f"{_PKG_NAME}.data.jinja2_LaTeX_templates").joinpath(
127
127
  "setup_tikz_tables.tex"
@@ -667,7 +667,7 @@ def _stats_formatted_row(
667
667
  match _return_type_sel:
668
668
  case StatsReturnSelector.RIN:
669
669
  _stats_row_ci = np.array([
670
- _propn_ci(*g, method="Wilson")
670
+ propn_ci(*g, method="Wilson")
671
671
  for g in zip(_stats_row_cnt[1:], _stats_row_tot[1:], strict=True)
672
672
  ])
673
673
  return [
@@ -722,7 +722,7 @@ def stats_print_rows(
722
722
  print()
723
723
 
724
724
 
725
- def _propn_ci(
725
+ def propn_ci(
726
726
  _npos: ArrayINT[TI] | int = 4,
727
727
  _nobs: ArrayINT[TI] | int = 10,
728
728
  /,
@@ -260,7 +260,7 @@ def enf_cnts(
260
260
  )
261
261
  _enf_cnts_sim_byfirmcount_array[0] = 2
262
262
 
263
- # Clearance/enfrocement counts --- by delta
263
+ # Clearance/enforcement counts --- by delta
264
264
  _hhi_delta_ranged = esl.hhi_delta_ranger(_hhi_delta)
265
265
  _enf_cnts_sim_bydelta_array = -1 * np.ones(_stats_rowlen, np.int64)
266
266
  for _hhi_delta_lim in esl.HHI_DELTA_KNOTS[:-1]:
@@ -282,7 +282,7 @@ def enf_cnts(
282
282
 
283
283
  _enf_cnts_sim_bydelta_array = _enf_cnts_sim_bydelta_array[1:]
284
284
 
285
- # Clearance/enfrocement counts --- by zone
285
+ # Clearance/enforcement counts --- by zone
286
286
  try:
287
287
  _hhi_zone_post_ranged = esl.hhi_zone_post_ranger(_hhi_post)
288
288
  except ValueError as _err:
@@ -367,23 +367,11 @@ def gen_upp_test_arrays(
367
367
  out=_guppi_array,
368
368
  )
369
369
 
370
- _cmcr_array = np.empty_like(_market_data.divr_array)
371
- np.divide(
372
- np.einsum("ij,ij->ij", _market_data.pcm_array, _market_data.divr_array),
373
- np.einsum("ij,ij->ij", 1 - _market_data.pcm_array, 1 - _market_data.divr_array),
374
- out=_cmcr_array,
375
- )
376
-
377
370
  _ipr_array = np.empty_like(_market_data.divr_array)
378
- np.divide(
379
- np.einsum("ij,ij->ij", _market_data.pcm_array, _market_data.divr_array),
380
- 1 - _market_data.divr_array,
381
- out=_ipr_array,
382
- )
371
+ np.divide(_guppi_array, (1 - _market_data.divr_array[:, ::-1]), out=_ipr_array)
383
372
 
384
- # This one needs further testing:
385
- # _ipr_array_alt = np.empty_like(_market_data.divr_array)
386
- # np.divide(_guppi_array, (1 - _market_data.divr_array[:, ::-1]), out=_ipr_array_alt)
373
+ _cmcr_array = np.empty_like(_market_data.divr_array)
374
+ np.divide(_ipr_array, 1 - _market_data.pcm_array, out=_cmcr_array)
387
375
 
388
376
  _test_measure_seq = (_market_data.divr_array, _guppi_array, _cmcr_array, _ipr_array)
389
377