def vbump(version, bump=Bump.MICRO): if not isinstance(version, (Version, LegacyVersion)): version = vparse(version) new_release = get_new_release(version.release, bump) # same as packaging.version.Version.__str__, but release is the new one parts = [] if version.epoch != 0: parts.append(f"{version.epoch}!") parts.append(".".join(str(x) for x in new_release)) if version.pre is not None: parts.append("".join(str(x) for x in version.pre)) if version.post is not None: parts.append(f".post{version.post}") if version.dev is not None: parts.append(f".dev{version.dev}") if version.local is not None: parts.append(f"+{version.local}") return "".join(parts)
def run(args: argparse.Namespace): sys_name = platform.system() if sys_name.lower() != 'windows': import resource # Set file descriptors try: resource.setrlimit(resource.RLIMIT_NOFILE, (8192, 8192)) except Exception: traceback.print_exc() logger.warning( 'Set file descriptors failed\nPlease set it by your self, use "ulimit -n 8192" with root account' ) # Check mock data group version. Update if is older than 1.x data_path = application._cm.config['mock.data'] Path(data_path).mkdir(parents=True, exist_ok=True) res = mock_data_tools.check_data_version(data_path) mockdata_version = vparse(res) if MOCK_DATA_V_1_0_0 <= mockdata_version < MOCK_DATA_V_1_7_0: logger.log(60, 'Mock data need update') mock_data_tools.update(data_path) elif mockdata_version < MOCK_DATA_V_1_0_0: logger.error('Can not update this mock data') # show current config contents print_lyrebird_info() config_str = json.dumps(application._cm.config, ensure_ascii=False, indent=4) logger.warning(f'Lyrebird start with config:\n{config_str}') # Main server application.server['event'] = EventServer() application.server['task'] = BackgroundTaskServer() application.server['proxy'] = LyrebirdProxyServer() application.server['mock'] = LyrebirdMockServer() application.server['db'] = LyrebirdDatabaseServer(path=args.database) application.server['plugin'] = PluginManager() application.server['checker'] = LyrebirdCheckerServer() application.start_server() # int statistics reporter application.reporter = reporter.Reporter() reporter.start() # activate notice center application.notice = NoticeCenter() # init label handler application.labels = LabelHandler() # load debug plugin # TODO plugin_manager = application.server['plugin'] if args.plugin: plugin_manager.plugin_path_list += args.plugin plugin_manager.reload() # load debug script if args.script: application.server['checker'].load_scripts(args.script) # auto open web browser if not args.no_browser: webbrowser.open(f'http://localhost:{application.config["mock.port"]}') # stop event handler def signal_handler(signum, frame): reporter.stop() application.stop_server() threading.Event().set() logger.warning('!!!Ctrl-C pressed. Lyrebird stop!!!') os._exit(1) signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) threading.Event().wait()
from lyrebird.event import EventServer from lyrebird.task import BackgroundTaskServer from lyrebird.notice_center import NoticeCenter from lyrebird.mock.dm.label import LabelHandler from lyrebird.db.database_server import LyrebirdDatabaseServer from lyrebird.plugins import PluginManager from lyrebird.checker import LyrebirdCheckerServer from lyrebird import version from lyrebird import reporter from lyrebird import mock_data_tools from lyrebird import project_builder from packaging.version import parse as vparse logger = log.get_logger() MOCK_DATA_V_1_7_0 = vparse('1.7.0') MOCK_DATA_V_1_0_0 = vparse('1.0.0') MOCK_DATA_V_0_15_0 = vparse('0.15.0') def main(): """ Command line main entry Start lyrebird * start in default config ``` lyrebird ``` * start with verbose mode
@pytest.fixture def context(): # These need to be tz-naive because the timestamp_col in # the test data is tz-naive return pd.Timestamp('20090105'), pd.Timestamp('20090111') def filter_by_time_context(df, context): return df[(df['timestamp_col'] >= context[0]) & (df['timestamp_col'] < context[1])] broken_pandas_grouped_rolling = pytest.mark.xfail( condition=vparse("1.4") <= vparse(pd.__version__) < vparse("1.4.2"), raises=ValueError, reason="https://github.com/pandas-dev/pandas/pull/44068", ) @pytest.fixture(scope="module") def ctx_col(): with option_context('context_adjustment.time_col', 'timestamp_col'): yield @pytest.mark.notimpl(["dask", "duckdb"]) @pytest.mark.min_spark_version('3.1') @pytest.mark.parametrize( 'window',
ops.TimestampDiff: fixed_arity('age', 2), ops.TimestampFromUNIX: _timestamp_from_unix, ops.Translate: fixed_arity('replace', 3), ops.TimestampNow: fixed_arity('now', 0), ops.RegexExtract: _regex_extract, ops.RegexReplace: fixed_arity("regexp_replace", 3), }) try: import duckdb except ImportError: # pragma: no cover pass else: from packaging.version import parse as vparse # 0.3.2 has zero-based array indexing, 0.3.3 has one-based array indexing # # 0.3.2: we pass in the user's arguments unchanged # 0.3.3: use the postgres implementation which is also one-based if vparse(duckdb.__version__) < vparse("0.3.3"): # pragma: no cover operation_registry[ops.ArrayIndex] = fixed_arity("list_element", 2) # don't export these del duckdb, vparse # pragma: no cover
expected = df.copy() mask_0 = expected['int_col'] == 1 mask_1 = expected['int_col'] == 0 expected['new_col'] = 0 expected.loc[mask_0, 'new_col'] = 20 expected.loc[mask_1, 'new_col'] = 10 backend.assert_frame_equal(result, expected) # TODO: some of these are notimpl (datafusion) others are probably never @pytest.mark.notimpl(["datafusion", "mysql", "postgres", "sqlite"]) @pytest.mark.xfail( duckdb is not None and vparse(duckdb.__version__) < vparse("0.3.3"), reason="<0.3.3 does not support isnan/isinf properly", ) def test_select_filter_mutate(backend, alltypes, df): """Test that select, filter and mutate are executed in right order. Before Pr 2635, try_fusion in analysis.py would fuse these operations together in a way that the order of the operations were wrong. (mutate was executed before filter). """ t = alltypes # Prepare the float_col so that filter must execute # before the cast to get the correct result. t = t.mutate( float_col=ibis.case()
def _matplotlib_version_satisfies(): from packaging.version import parse as vparse from matplotlib import __version__ return vparse(__version__) >= vparse('3.3.0')
lambda t: ibis.literal(-np.inf), lambda t: -np.inf, id='-inf-literal', ), ], ) @pytest.mark.parametrize( ('expr_fn', 'expected_expr_fn'), [ param(operator.methodcaller('isnan'), np.isnan, id='isnan'), param(operator.methodcaller('isinf'), np.isinf, id='isinf'), ], ) @pytest.mark.notimpl(["mysql", "sqlite", "datafusion"]) @pytest.mark.xfail( duckdb is not None and vparse(duckdb.__version__) < vparse("0.3.3"), reason="<0.3.3 does not support isnan/isinf properly", ) def test_isnan_isinf( backend, con, alltypes, df, operand_fn, expected_operand_fn, expr_fn, expected_expr_fn, ): expr = expr_fn(operand_fn(alltypes)) expected = expected_expr_fn(expected_operand_fn(df))
def _updatable_contour_plot_available(): from packaging.version import parse as vparse from matplotlib import __version__ return vparse(__version__) >= vparse('3.3.0')
submodule = "timeseries" install_requires = [ # version ranges added in ag.get_dependency_version_ranges() "numpy", "scipy", "pandas", "psutil>=5.7.3,<5.9", "gluonts>=0.8.0,<0.10.0", f"autogluon.core=={version}", f"autogluon.common=={version}", ] try: from mxnet import __version__ as mxnet_version assert vparse("2.0") > vparse(mxnet_version) >= vparse("1.9") except (ImportError, AssertionError): warnings.warn( "autogluon.forecasting depends on Apache MXNet v1.9 or greater (below v2.0). " "Please install a suitable version of MXNet in order to use autogluon.forecasting using " "`pip install mxnet==1.9` or a matching MXNet package for your CUDA driver if you are using " "a GPU. See the MXNet documentation for more info.") extras_require = { "tests": ["pytest", "flake8~=4.0", "flaky~=3.7", "pytest-timeout~=2.1"], "sktime": ["sktime~=0.12", "pmdarima~=1.8", "tbats~=1.1"], } all_requires = [] for extra_package in ["sktime"]: all_requires += extras_require[extra_package]