This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Here's an example of how this pyscript app works in the browser: | |
| https://owenprice.pyscriptapps.com/pq-regex/latest/?txt=abc123def456&pattern=%5Cd%2B | |
| To clone the project and modify, create an account on pyscript.com and clone this project: | |
| https://pyscript.com/@owenprice/pq-regex/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def flatten_geography(rich_value): | |
| props = rich_value.data.get("properties", {}) | |
| flat = {} | |
| def extract(val): | |
| if not isinstance(val, dict): | |
| return str(val) if val is not None else None | |
| typ = val.get("type") | |
| if typ in ("String", "FormattedNumber"): |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def portfolio_analysis(data: UDF.Range, has_dates: bool = True, price_type: str = "Close", | |
| annual_factor: int = 252, custom_weights: list = None, risk_free_rate: float = 0.0) -> UDF.Range: | |
| """ | |
| Calculates key portfolio metrics from stock price data. | |
| Args: | |
| data: Daily stock prices. If has_dates=True, the first column should be dates. | |
| has_dates: Whether the first column contains dates (True) or is price data (False). | |
| price_type: String indicating price type used ("Close" or "Adj Close"). | |
| annual_factor: Number of trading days per year, defaulting to 252 for daily data. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import inspect | |
| begin_print = False | |
| module_print = True | |
| function_print = True | |
| for key, value in list(globals().items()): | |
| if begin_print and not key.endswith("_print"): | |
| # print imported module names if requested | |
| if module_print and inspect.ismodule(value): |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| DATE.EXP = LAMBDA(y, m, d, | |
| LET( | |
| mdJoin, CROSSJOIN(m, d), | |
| ymdJoin, CROSSJOIN(y, mdJoin), | |
| yearArray, CHOOSECOLS(ymdJoin, 1), | |
| monthArray, CHOOSECOLS(ymdJoin, 2), | |
| dayArray, CHOOSECOLS(ymdJoin, -1), | |
| SORT(MAP(yearArray, monthArray, dayArray, DATE)) | |
| ) | |
| ); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| IFOMITTED = LAMBDA(arg, then, IF(ISOMITTED(arg),then,arg)); | |
| // Collapse a boolean array to a boolean vector | |
| COLLAPSE = LAMBDA( | |
| array, | |
| [collapse_with], // AND (default) or OR | |
| [collapse_to], // 0 (default) = column or 1 = row | |
| IF(collapse_to=0,BYROW,BYCOL)(array,IFOMITTED(collapse_with, AND)) | |
| ); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Option Explicit | |
| Public Sub TogglePythonCells() | |
| Dim cell As Range | |
| For Each cell In Selection | |
| If Left(cell.Formula2, 3) = "=PY" Then | |
| If cell.HasFormula Then | |
| cell.Formula2 = "'" & cell.Formula2 | |
| Else |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import numpy as np | |
| import bisect | |
| import timeit | |
| import matplotlib.pyplot as plt | |
| # Initialize list to store results | |
| results = [] | |
| # Test for different array sizes | |
| test_values = [1000, 10000, 100000, 1000000, 10000000, 100000000] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import math | |
| from sympy import divisor_sigma, isprime | |
| import time | |
| t1 = time.time() | |
| results = [] | |
| n = 1 | |
| while len(results) < 50: | |
| if n > 2 and isprime(n): | |
| n += 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| CHECKRANGE = LAMBDA(checkfn, | |
| LAMBDA(directionfn, | |
| LAMBDA(v, | |
| directionfn(v,LAMBDA(x,AND(checkfn(x)))) | |
| ))); | |
| CHECKISBLANK = CHECKRANGE(ISBLANK); | |
| CHECKBLANKROWS = CHECKISBLANK(BYROW); | |
| CHECKBLANKCOLS = CHECKISBLANK(BYCOL); | |
| TRIMRANGE2 =LAMBDA(sparseRange, [compressOrRemove], |