Beispiel #1
0
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)
Beispiel #2
0
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()
Beispiel #3
0
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
Beispiel #4
0

@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',
Beispiel #5
0
    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
Beispiel #6
0
    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()
Beispiel #7
0
 def _matplotlib_version_satisfies():
     from packaging.version import parse as vparse
     from matplotlib import __version__
     return vparse(__version__) >= vparse('3.3.0')
Beispiel #8
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))
Beispiel #9
0
def _updatable_contour_plot_available():
    from packaging.version import parse as vparse
    from matplotlib import __version__
    return vparse(__version__) >= vparse('3.3.0')
Beispiel #10
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]