diff --git a/.github/workflows/onrelease.yml b/.github/workflows/onrelease.yml new file mode 100644 index 00000000..e95a3880 --- /dev/null +++ b/.github/workflows/onrelease.yml @@ -0,0 +1,59 @@ +name: release + +on: + push: + tags: + - 'v*' # only release a versioned tag, such as v.X.Y.Z + +jobs: + release: + runs-on: ${{ matrix.os }} + strategy: + max-parallel: 1 + matrix: + python-version: [ 3.9 ] + os: [ ubuntu-latest ] + + steps: + - uses: actions/checkout@v1 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + + - uses: actions/cache@v2 + id: cache + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + ${{ runner.os }}-pip- + - name: Install pip + run: python -m pip install --upgrade pip + + - name: Install dependencies + run: pip install -U -r dev-requirements.txt + + - name: Build dist + run: python setup.py clean bdist_wheel + + - name: Publish a Python distribution to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + user: __token__ + password: ${{ secrets.LABS_PYPI_TOKEN }} + + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + body: | + Release for version ${{ github.ref }}. Please refer to CHANGELOG.md for detailed information. + draft: false + prerelease: false \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 868b8b78..29d1310b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,7 +1,7 @@ name: build on: push: - branches: [master, scala_refactor] + branches: [master] jobs: run: runs-on: ${{ matrix.os }} @@ -20,13 +20,13 @@ jobs: - name: Set Spark env run: | export SPARK_LOCAL_IP=127.0.0.1 + export SPARK_SUBMIT_OPTS="--illegal-access=permit -Dio.netty.tryReflectionSetAccessible=true" - name: Generate coverage report working-directory: ./python run: | pip install -r requirements.txt pip install coverage - coverage run -m unittest + coverage run -m unittest discover -s tests -p '*_tests.py' coverage xml - - name: Publish test coverage uses: codecov/codecov-action@v1 diff --git a/.gitignore b/.gitignore index 34f33c52..f41edb82 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ -# ignore IntelliJ/PyCharm IDE files +# ignore IntelliJ/PyCharm/VSCode IDE files .idea *.iml +.vscode + # coverage files .coverage @@ -10,6 +12,7 @@ coverage.xml scala/tempo/target scala/tempo/project/target/ scala/tempo/project/project/target/ +scala/target/stream/* .bsp # local delta tables diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c45bc7dd..3ca1e314 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -51,4 +51,4 @@ Authorized Users (please list Github usernames):** * Required field -** Please note that Authorized Users may not be immediately be granted authorization to submit Contributions; should more than one individual attempt to sign a CLA on behalf of a Corporation, the first such CLA will apply and later CLAs will be deemed void. +** Please note that Authorized Users may not be immediately be granted authorization to submit Contributions; should more than one individual attempt to sign a CLA on behalf of a Corporation, the first such CLA will apply and later CLAs will be deemed void. \ No newline at end of file diff --git a/README.md b/README.md index d693ebcf..677ccb01 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,10 @@ ## Project Description The purpose of this project is to make time series manipulation with Spark simpler. Operations covered under this package include AS OF joins, rolling statistics with user-specified window lengths, featurization of time series using lagged values, and Delta Lake optimization on time and partition fields. +[![image](https://github.com/databrickslabs/tempo/workflows/build/badge.svg)](https://github.com/databrickslabs/tempo/actions?query=workflow%3Abuild) [![codecov](https://codecov.io/gh/databrickslabs/tempo/branch/master/graph/badge.svg)](https://codecov.io/gh/databrickslabs/tempo) +[![Downloads](https://pepy.tech/badge/dbl-tempo/month)](https://pepy.tech/project/dbl-tempo) +[![PyPI version](https://badge.fury.io/py/dbl-tempo.svg)](https://badge.fury.io/py/dbl-tempo) ## Using the Project @@ -164,6 +167,92 @@ moving_avg.select('event_ts', 'x', 'y', 'z', 'mean_y').show(10, False) ``` +#### 6 - Fourier Transform + +Method for transforming the time series to frequency domain based on the distinguished data column + +Parameters: + +timestep = timestep value to be used for getting the frequency scale + +valueCol = name of the time domain data column which will be transformed + +```python +ft_df = tsdf.fourier_transform(timestep=1, valueCol="data_col") +display(ft_df) +``` +#### 7 - Interpolation + +Interpolate a series to fill in missing values using a specified function. The following interpolation methods are supported: + +- Zero Fill : `zero` +- Null Fill: `null` +- Backwards Fill: `bfill` +- Forwards Fill: `ffill` +- Linear Fill: `linear` + +The `interpolate` method can either be use in conjunction with `resample` or independently. + +If `interpolate` is not chained after a `resample` operation, the method automatically first re-samples the input dataset into a given frequency, then performs interpolation on the sampled time-series dataset. + +Possible values for frequency include patterns such as 1 minute, 4 hours, 2 days or simply sec, min, day. For the accepted functions to aggregate data, options are 'floor', 'ceil', 'min', 'max', 'mean'. + +`NULL` values after re-sampling are treated the same as missing values. Ability to specify `NULL` as a valid value is currently not supported. + +Valid columns data types for interpolation are: `["int", "bigint", "float", "double"]`. + +```python +# Create instance of the TSDF class +input_tsdf = TSDF( + input_df, + partition_cols=["partition_a", "partition_b"], + ts_col="event_ts", + ) + + +# What the following chain of operation does is: +# 1. Aggregate all valid numeric columns using mean into 30 second intervals +# 2. Interpolate any missing intervals or null values using linear fill +# Note: When chaining interpolate after a resample, there is no need to provide a freq or func parameter. Only method is required. +interpolated_tsdf = input_tsdf.resample(freq="30 seconds", func="mean").interpolate( + method="linear" +) + +# What the following interpolation method does is: +# 1. Aggregate columnA and columnBN using mean into 30 second intervals +# 2. Interpolate any missing intervals or null values using linear fill +interpolated_tsdf = input_tsdf.interpolate( + freq="30 seconds", + func="mean", + target_cols= ["columnA","columnB"], + method="linear" + +) + +# Alternatively it's also possible to override default TSDF parameters. +# e.g. partition_cols, ts_col a +interpolated_tsdf = input_tsdf.interpolate( + partition_cols=["partition_c"], + ts_col="other_event_ts" + freq="30 seconds", + func="mean", + target_cols= ["columnA","columnB"], + method="linear" +) + +# The show_interpolated flag can be set to `True` to show additional boolean columns +# for a given row that shows if a column has been interpolated. +interpolated_tsdf = input_tsdf.interpolate( + partition_cols=["partition_c"], + ts_col="other_event_ts" + freq="30 seconds", + func="mean", + method="linear", + target_cols= ["columnA","columnB"], + show_interpolated=True, +) + +``` ## Project Support Please note that all projects in the /databrickslabs github account are provided for your exploration only, and are not formally supported by Databricks with Service Level Agreements (SLAs). They are provided AS-IS and we do not make any guarantees of any kind. Please do not submit a support ticket relating to any issues arising from the use of these projects. diff --git a/python/README.md b/python/README.md index 657bba17..75ff04ff 100644 --- a/python/README.md +++ b/python/README.md @@ -8,7 +8,9 @@ ## Project Description The purpose of this project is to make time series manipulation with Spark simpler. Operations covered under this package include AS OF joins, rolling statistics with user-specified window lengths, featurization of time series using lagged values, and Delta Lake optimization on time and partition fields. +[![image](https://github.com/databrickslabs/tempo/workflows/build/badge.svg)](https://github.com/databrickslabs/tempo/actions?query=workflow%3Abuild) [![codecov](https://codecov.io/gh/databrickslabs/tempo/branch/master/graph/badge.svg)](https://codecov.io/gh/databrickslabs/tempo) +[![Downloads](https://pepy.tech/badge/dbl-tempo/month)](https://pepy.tech/project/dbl-tempo) ## Using the Project @@ -144,7 +146,92 @@ moving_avg = watch_accel_tsdf.withRangeStats("y", rangeBackWindowSecs=600) moving_avg.select('event_ts', 'x', 'y', 'z', 'mean_y').show(10, False) ``` +#### 6 - Fourier Transform +Method for transforming the time series to frequency domain based on the distinguished data column + +Parameters: + +timestep = timestep value to be used for getting the frequency scale + +valueCol = name of the time domain data column which will be transformed + +```python +ft_df = tsdf.fourier_transform(timestep=1, valueCol="data_col") +display(ft_df) +``` + +#### 7- Interpolation +Interpolate a series to fill in missing values using a specified function. The following interpolation methods are supported: + +- Zero Fill : `zero` +- Null Fill: `null` +- Backwards Fill: `bfill` +- Forwards Fill: `ffill` +- Linear Fill: `linear` + +The `interpolate` method can either be use in conjunction with `resample` or independently. + +If `interpolate` is not chained after a `resample` operation, the method automatically first re-samples the input dataset into a given frequency, then performs interpolation on the sampled time-series dataset. + +Possible values for frequency include patterns such as 1 minute, 4 hours, 2 days or simply sec, min, day. For the accepted functions to aggregate data, options are 'floor', 'ceil', 'min', 'max', 'mean'. + +`NULL` values after re-sampling are treated the same as missing values. Ability to specify `NULL` as a valid value is currently not supported. + +Valid columns data types for interpolation are: `["int", "bigint", "float", "double"]`. + +```python +# Create instance of the TSDF class +input_tsdf = TSDF( + input_df, + partition_cols=["partition_a", "partition_b"], + ts_col="event_ts", + ) + + +# What the following chain of operation does is: +# 1. Aggregate all valid numeric columns using mean into 30 second intervals +# 2. Interpolate any missing intervals or null values using linear fill +# Note: When chaining interpolate after a resample, there is no need to provide a freq or func parameter. Only method is required. +interpolated_tsdf = input_tsdf.resample(freq="30 seconds", func="mean").interpolate( + method="linear" +) + +# What the following interpolation method does is: +# 1. Aggregate columnA and columnBN using mean into 30 second intervals +# 2. Interpolate any missing intervals or null values using linear fill +interpolated_tsdf = input_tsdf.interpolate( + freq="30 seconds", + func="mean", + target_cols= ["columnA","columnB"], + method="linear" + +) + +# Alternatively it's also possible to override default TSDF parameters. +# e.g. partition_cols, ts_col a +interpolated_tsdf = input_tsdf.interpolate( + partition_cols=["partition_c"], + ts_col="other_event_ts" + freq="30 seconds", + func="mean", + target_cols= ["columnA","columnB"], + method="linear" +) + +# The show_interpolated flag can be set to `True` to show additional boolean columns +# for a given row that shows if a column has been interpolated. +interpolated_tsdf = input_tsdf.interpolate( + partition_cols=["partition_c"], + ts_col="other_event_ts" + freq="30 seconds", + func="mean", + method="linear", + target_cols= ["columnA","columnB"], + show_interpolated=True, +) + +``` ## Project Support Please note that all projects in the /databrickslabs github account are provided for your exploration only, and are not formally supported by Databricks with Service Level Agreements (SLAs). They are provided AS-IS and we do not make any guarantees of any kind. Please do not submit a support ticket relating to any issues arising from the use of these projects. diff --git a/python/requirements.txt b/python/requirements.txt index 8cbcc3e3..4e755deb 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -1,10 +1,13 @@ +ipython==7.28.0 numpy==1.19.1 +chispa==0.8.2 pandas==1.1.0 py4j==0.10.9 +pyarrow==6.0.1 pyspark==3.0.0 pyspark-stubs==3.0.0 python-dateutil==2.8.1 pytz==2020.1 +scipy==1.7.2 six==1.15.0 wheel==0.34.2 -ipython==7.28.0 diff --git a/python/setup.py b/python/setup.py index 63fd6913..435d8824 100644 --- a/python/setup.py +++ b/python/setup.py @@ -6,7 +6,7 @@ setuptools.setup( name='dbl-tempo', - version='0.1.2', + version='0.1.3', author='Ricardo Portilla, Tristan Nixon, Max Thone, Sonali Guleria', author_email='labs@databricks.com', description='Spark Time Series Utility Package', @@ -16,7 +16,8 @@ packages=find_packages(where=".", include=["tempo"]), install_requires=[ 'ipython', - 'pandas' + 'pandas', + 'scipy' ], extras_require=dict(tests=["pytest"]), classifiers=[ diff --git a/python/tempo/__init__.py b/python/tempo/__init__.py index 80d25720..51546de6 100644 --- a/python/tempo/__init__.py +++ b/python/tempo/__init__.py @@ -1,2 +1,2 @@ from tempo.tsdf import TSDF -from tempo.utils import display +from tempo.utils import display \ No newline at end of file diff --git a/python/tempo/interpol.py b/python/tempo/interpol.py new file mode 100644 index 00000000..a980ee9b --- /dev/null +++ b/python/tempo/interpol.py @@ -0,0 +1,378 @@ +import sys +from typing import List + +from pyspark.sql.dataframe import DataFrame +from pyspark.sql.functions import col, expr, first, last, lead, lit, when +from pyspark.sql.window import Window + +# Interpolation fill options +method_options = ["zero", "null", "bfill", "ffill", "linear"] +supported_target_col_types = ["int", "bigint", "float", "double"] + + +class Interpolation: + def __init__(self, is_resampled: bool): + self.is_resampled = is_resampled + + def __validate_fill(self, method: str): + """ + Validate if the fill provided is within the allowed list of values. + + :param fill - Fill type e.g. "zero", "null", "bfill", "ffill", "linear" + """ + if method not in method_options: + raise ValueError( + f"Please select from one of the following fill options: {method_options}" + ) + + def __validate_col( + self, + df: DataFrame, + partition_cols: List[str], + target_cols: List[str], + ts_col: str, + ): + """ + Validate if target column exists and is of numeric type, and validates if partition column exists. + + :param df - DataFrame to be validated + :param partition_cols - Partition columns to be validated + :param target_col - Target column to be validated + :param ts_col - Timestamp column to be validated + """ + for column in partition_cols: + if column not in str(df.columns): + raise ValueError( + f"Partition Column: '{column}' does not exist in DataFrame." + ) + for column in target_cols: + if column not in str(df.columns): + raise ValueError( + f"Target Column: '{column}' does not exist in DataFrame." + ) + if df.select(column).dtypes[0][1] not in supported_target_col_types: + raise ValueError( + f"Target Column needs to be one of the following types: {supported_target_col_types}" + ) + + if ts_col not in str(df.columns): + raise ValueError( + f"Timestamp Column: '{ts_col}' does not exist in DataFrame." + ) + + if df.select(ts_col).dtypes[0][1] != "timestamp": + raise ValueError(f"Timestamp Column needs to be of timestamp type.") + + def __calc_linear_spark(self, df: DataFrame, ts_col: str, target_col: str): + """ + Native Spark function for calculating linear interpolation on a DataFrame. + + :param df - prepared dataframe to be interpolated + :param ts_col - timeseries column name + :param target_col - column to be interpolated + """ + interpolation_expr = f""" + case when is_interpolated_{target_col} = false then {target_col} + when {target_col} is null then + (next_null_{target_col} - previous_{target_col}) + /(unix_timestamp(next_timestamp_{target_col})-unix_timestamp(previous_timestamp_{target_col})) + *(unix_timestamp({ts_col}) - unix_timestamp(previous_timestamp_{target_col})) + + previous_{target_col} + else + (next_{target_col}-{target_col}) + /(unix_timestamp(next_timestamp)-unix_timestamp(previous_timestamp)) + *(unix_timestamp({ts_col}) - unix_timestamp(previous_timestamp)) + + {target_col} + end as {target_col} + """ + + # remove target column to avoid duplication during interpolation expression + cols: List[str] = df.columns + cols.remove(target_col) + interpolated: DataFrame = df.selectExpr(*cols, interpolation_expr) + # Preserve column order + return interpolated.select(*df.columns) + + def __interpolate_column( + self, + series: DataFrame, + ts_col: str, + target_col: str, + method: str, + ) -> DataFrame: + """ + Apply interpolation to column. + + :param series - input DataFrame + :param ts_col - timestamp column name + :param target_col - column to interpolate + :param method - interpolation function to fill missing values + """ + output_df: DataFrame = series + + # create new column for if target column is interpolated + flag_expr = f""" + CASE WHEN {target_col} is null and is_ts_interpolated = false THEN true + WHEN is_ts_interpolated = true THEN true + ELSE false + END AS is_interpolated_{target_col} + """ + output_df = output_df.withColumn( + f"is_interpolated_{target_col}", expr(flag_expr) + ) + + # Handle zero fill + if method == "zero": + output_df = output_df.withColumn( + target_col, + when( + col(f"is_interpolated_{target_col}") == False, col(target_col) + ).otherwise(lit(0)), + ) + + # Handle null fill + if method == "null": + output_df = output_df.withColumn( + target_col, + when( + col(f"is_interpolated_{target_col}") == False, col(target_col) + ).otherwise(None), + ) + + # Handle forward fill + if method == "ffill": + output_df = output_df.withColumn( + target_col, + when( + col(f"is_interpolated_{target_col}") == True, + col(f"previous_{target_col}"), + ).otherwise(col(target_col)), + ) + # Handle backwards fill + if method == "bfill": + output_df = output_df.withColumn( + target_col, + # Handle case when subsequent value is null + when( + (col(f"is_interpolated_{target_col}") == True) + & ( + col(f"next_{target_col}").isNull() + & (col(f"{ts_col}_{target_col}").isNull()) + ), + col(f"next_null_{target_col}"), + ).otherwise( + # Handle standard backwards fill + when( + col(f"is_interpolated_{target_col}") == True, + col(f"next_{target_col}"), + ).otherwise(col(f"{target_col}")) + ), + ) + + # Handle linear fill + if method == "linear": + output_df = self.__calc_linear_spark( + output_df, + ts_col, + target_col, + ) + + return output_df + + def __generate_time_series_fill( + self, df: DataFrame, partition_cols: List[str], ts_col: str + ) -> DataFrame: + """ + Create additional timeseries columns for previous and next timestamps + + :param df - input DataFrame + :param partition_cols - partition column names + :param ts_col - timestamp column name + """ + return df.withColumn("previous_timestamp", col(ts_col),).withColumn( + "next_timestamp", + lead(df[ts_col]).over(Window.partitionBy(*partition_cols).orderBy(ts_col)), + ) + + def __generate_column_time_fill( + self, df: DataFrame, partition_cols: List[str], ts_col: str, target_col: str + ) -> DataFrame: + """ + Create timeseries columns for previous and next timestamps for a specific target column + + :param df - input DataFrame + :param partition_cols - partition column names + :param ts_col - timestamp column name + :param target_col - target column name + """ + return df.withColumn( + f"previous_timestamp_{target_col}", + last(col(f"{ts_col}_{target_col}"), ignorenulls=True).over( + Window.partitionBy(*partition_cols) + .orderBy(ts_col) + .rowsBetween(-sys.maxsize, 0) + ), + ).withColumn( + f"next_timestamp_{target_col}", + first(col(f"{ts_col}_{target_col}"), ignorenulls=True).over( + Window.partitionBy(*partition_cols) + .orderBy(ts_col) + .rowsBetween(0, sys.maxsize) + ), + ) + + def __generate_target_fill( + self, df: DataFrame, partition_cols: List[str], ts_col: str, target_col: str + ) -> DataFrame: + """ + Create columns for previous and next value for a specific target column + + :param df - input DataFrame + :param partition_cols - partition column names + :param ts_col - timestamp column name + :param target_col - target column name + """ + return ( + df.withColumn( + f"previous_{target_col}", + last(df[target_col], ignorenulls=True).over( + Window.partitionBy(*partition_cols) + .orderBy(ts_col) + .rowsBetween(-sys.maxsize, 0) + ), + ) + # Handle if subsequent value is null + .withColumn( + f"next_null_{target_col}", + first(df[target_col], ignorenulls=True).over( + Window.partitionBy(*partition_cols) + .orderBy(ts_col) + .rowsBetween(0, sys.maxsize) + ), + ).withColumn( + f"next_{target_col}", + lead(df[target_col]).over( + Window.partitionBy(*partition_cols).orderBy(ts_col) + ), + ) + ) + + def interpolate( + self, + tsdf, + ts_col: str, + partition_cols: List[str], + target_cols: List[str], + freq: str, + func: str, + method: str, + show_interpolated: bool, + ) -> DataFrame: + """ + Apply interpolation. + + :param tsdf - input TSDF + :param ts_col - timestamp column name + :param target_cols - numeric columns to interpolate + :param partition_cols - partition columns names + :param freq - frequency at which to sample + :param func - aggregate function used for sampling to the specified interval + :param method - interpolation function usded to fill missing values + :param show_interpolated - show if row is interpolated? + :return DataFrame + """ + # Validate input parameters + self.__validate_fill(method) + self.__validate_col(tsdf.df, partition_cols, target_cols, ts_col) + + # Only select required columns for interpolation + input_cols: List[str] = [*partition_cols, ts_col, *target_cols] + sampled_input: DataFrame = tsdf.df.select(*input_cols) + + if self.is_resampled is False: + # Resample and Normalize Input + sampled_input: DataFrame = tsdf.resample( + freq=freq, func=func, metricCols=target_cols + ).df + + # Fill timeseries for nearest values + time_series_filled = self.__generate_time_series_fill( + sampled_input, partition_cols, ts_col + ) + + # Generate surrogate timestamps for each target column + # This is required if multuple columns are being interpolated and may contain nulls + add_column_time: DataFrame = time_series_filled + for column in target_cols: + add_column_time = add_column_time.withColumn( + f"event_ts_{column}", + when(col(column).isNull(), None).otherwise(col(ts_col)), + ) + add_column_time = self.__generate_column_time_fill( + add_column_time, partition_cols, ts_col, column + ) + + # Handle edge case if last value (latest) is null + edge_filled = add_column_time.withColumn( + "next_timestamp", + when( + col("next_timestamp").isNull(), expr(f"{ts_col}+ interval {freq}") + ).otherwise(col("next_timestamp")), + ) + + # Fill target column for nearest values + target_column_filled = edge_filled + for column in target_cols: + target_column_filled = self.__generate_target_fill( + target_column_filled, partition_cols, ts_col, column + ) + + # Generate missing timeseries values + exploded_series = target_column_filled.withColumn( + f"new_{ts_col}", + expr( + f"explode(sequence({ts_col}, next_timestamp - interval {freq}, interval {freq} )) as timestamp" + ), + ) + # Mark rows that are interpolated if flag is set to True + flagged_series: DataFrame = exploded_series + + flagged_series = ( + exploded_series.withColumn( + "is_ts_interpolated", + when(col(f"new_{ts_col}") != col(ts_col), True).otherwise(False), + ) + .withColumn(ts_col, col(f"new_{ts_col}")) + .drop(col(f"new_{ts_col}")) + ) + + # # Perform interpolation on each target column + interpolated_result: DataFrame = flagged_series + for target_col in target_cols: + # Interpolate target columns + interpolated_result: DataFrame = self.__interpolate_column( + interpolated_result, ts_col, target_col, method + ) + + interpolated_result = interpolated_result.drop( + f"previous_timestamp_{target_col}", + f"next_timestamp_{target_col}", + f"previous_{target_col}", + f"next_{target_col}", + f"next_null_{target_col}", + f"{ts_col}_{target_col}", + ) + + # Remove non-required columns + output: DataFrame = interpolated_result.drop( + "previous_timestamp", "next_timestamp" + ) + + # Hide is_interpolated columns based on flag + if show_interpolated is False: + interpolated_col_names = ["is_ts_interpolated"] + for column in target_cols: + interpolated_col_names.append(f"is_interpolated_{column}") + output = output.drop(*interpolated_col_names) + + return output diff --git a/python/tempo/io.py b/python/tempo/io.py index 597559e5..ffcc4cde 100644 --- a/python/tempo/io.py +++ b/python/tempo/io.py @@ -41,6 +41,3 @@ def write(tsdf, spark, tabName, optimizationCols = None): logger.error("Delta optimizations attempted, but was not successful.\nError: {}".format(e)) else: logger.warning("Delta optimizations attempted on a non-Databricks platform. Switch to use Databricks Runtime to get optimization advantages.") - - - diff --git a/python/tempo/resample.py b/python/tempo/resample.py index 3b9c9014..e76f5fd1 100644 --- a/python/tempo/resample.py +++ b/python/tempo/resample.py @@ -114,7 +114,7 @@ def aggregate(tsdf, freq, func, metricCols = None, prefix = None, fill = None): if fill: res = imputes.join(res, tsdf.partitionCols + [tsdf.ts_col], "leftouter").na.fill(0, metrics) - return(tempo.TSDF(res, ts_col = tsdf.ts_col, partition_cols = tsdf.partitionCols)) + return res def checkAllowableFreq(tsdf, freq): diff --git a/python/tempo/tsdf.py b/python/tempo/tsdf.py index fd22f9c1..8788d068 100644 --- a/python/tempo/tsdf.py +++ b/python/tempo/tsdf.py @@ -1,15 +1,20 @@ -import tempo.resample as rs -import tempo.io as tio - -from tempo.utils import ENV_BOOLEAN, PLATFORM - -from IPython.display import display as ipydisplay -from IPython.core.display import HTML import logging from functools import reduce +from typing import List +import numpy as np import pyspark.sql.functions as f +from IPython.core.display import HTML +from IPython.display import display as ipydisplay +from pyspark.sql import SparkSession +from pyspark.sql.dataframe import DataFrame from pyspark.sql.window import Window +from scipy.fft import fft, fftfreq + +import tempo.io as tio +import tempo.resample as rs +from tempo.interpol import Interpolation +from tempo.utils import ENV_BOOLEAN, PLATFORM logger = logging.getLogger(__name__) @@ -73,13 +78,20 @@ def __addPrefixToColumns(self,col_list,prefix): """ Add prefix to all specified columns. """ + if prefix != '': + prefix = prefix + '_' - df = reduce(lambda df, idx: df.withColumnRenamed(col_list[idx], '_'.join([prefix,col_list[idx]])), + df = reduce(lambda df, idx: df.withColumnRenamed(col_list[idx], ''.join([prefix, col_list[idx]])), range(len(col_list)), self.df) - ts_col = '_'.join([prefix, self.ts_col]) - seq_col = '_'.join([prefix, self.sequence_col]) if self.sequence_col else self.sequence_col - return TSDF(df, ts_col, self.partitionCols, sequence_col = seq_col) + + if prefix == '': + ts_col = self.ts_col + seq_col = self.sequence_col if self.sequence_col else self.sequence_col + else: + ts_col = ''.join([prefix, self.ts_col]) + seq_col = ''.join([prefix, self.sequence_col]) if self.sequence_col else self.sequence_col + return TSDF(df, ts_col, self.partitionCols, sequence_col=seq_col) def __addColumnsFromOtherDF(self, other_cols): """ @@ -187,9 +199,9 @@ def select(self, *cols): Examples -------- - >>> tsdf.select('*').collect() + tsdf.select('*').collect() [Row(age=2, name='Alice'), Row(age=5, name='Bob')] - >>> tsdf.select('name', 'age').collect() + tsdf.select('name', 'age').collect() [Row(name='Alice', age=2), Row(name='Bob', age=5)] """ @@ -289,7 +301,8 @@ def describe(self): return(full_smry) pass - def asofJoin(self, right_tsdf, left_prefix=None, right_prefix="right", tsPartitionVal=None, fraction=0.5, skipNulls=True): + + def asofJoin(self, right_tsdf, left_prefix=None, right_prefix="right", tsPartitionVal=None, fraction=0.5, skipNulls=True, sql_join_opt=False): """ Performs an as-of join between two time-series. If a tsPartitionVal is specified, it will do this partitioned by time brackets, which can help alleviate skew. @@ -304,6 +317,40 @@ def asofJoin(self, right_tsdf, left_prefix=None, right_prefix="right", tsPartiti :param skipNulls - whether to skip nulls when joining in values """ + # first block of logic checks whether a standard range join will suffice + left_df = self.df + right_df = right_tsdf.df + + spark = (SparkSession.builder.appName("myapp").getOrCreate()) + + left_plan = left_df._jdf.queryExecution().logical() + left_bytes = spark._jsparkSession.sessionState().executePlan(left_plan).optimizedPlan().stats().sizeInBytes() + right_plan = right_df._jdf.queryExecution().logical() + right_bytes = spark._jsparkSession.sessionState().executePlan(right_plan).optimizedPlan().stats().sizeInBytes() + + # choose 30MB as the cutoff for the broadcast + bytes_threshold = 30*1024*1024 + if sql_join_opt & ((left_bytes < bytes_threshold) | (right_bytes < bytes_threshold)): + spark.conf.set("spark.databricks.optimizer.rangeJoin.binSize", 60) + partition_cols = right_tsdf.partitionCols + left_cols = list(set(left_df.columns).difference(set(self.partitionCols))) + right_cols = list(set(right_df.columns).difference(set(right_tsdf.partitionCols))) + + left_prefix = ('' if ((left_prefix is None) | (left_prefix == '')) else left_prefix + '_') + right_prefix = ('' if ((right_prefix is None) | (right_prefix == '')) else right_prefix + '_') + + w = Window.partitionBy(*partition_cols).orderBy(right_prefix + right_tsdf.ts_col) + + new_left_ts_col = left_prefix + self.ts_col + new_left_cols = [f.col(c).alias(left_prefix + c) for c in left_cols] + partition_cols + new_right_cols = [f.col(c).alias(right_prefix + c) for c in right_cols] + partition_cols + quotes_df_w_lag = right_df.select(*new_right_cols).withColumn("lead_" + right_tsdf.ts_col, f.lead(right_prefix + right_tsdf.ts_col).over(w)) + left_df = left_df.select(*new_left_cols) + res = left_df.join(quotes_df_w_lag, partition_cols).where(left_df[new_left_ts_col].between(f.col(right_prefix + right_tsdf.ts_col), f.coalesce(f.col('lead_' + right_tsdf.ts_col), f.lit('2099-01-01').cast("timestamp")))).drop('lead_' + right_tsdf.ts_col) + return(TSDF(res, partition_cols=self.partitionCols, ts_col=new_left_ts_col)) + + # end of block checking to see if standard Spark SQL join will work + if (tsPartitionVal is not None): logger.warning("You are using the skew version of the AS OF join. This may result in null values if there are any values outside of the maximum lookback. For maximum efficiency, choose smaller values of maximum lookback, trading off performance and potential blank AS OF values for sparse keys") @@ -314,7 +361,6 @@ def asofJoin(self, right_tsdf, left_prefix=None, right_prefix="right", tsPartiti left_df = self.df right_df = right_tsdf.df - # validate timestamp datatypes match self.__validateTsColMatch(right_tsdf) @@ -529,8 +575,43 @@ def resample(self, freq, func=None, metricCols = None, prefix=None, fill = None) :return: TSDF object with sample data using aggregate function """ rs.validateFuncExists(func) - enriched_tsdf = rs.aggregate(self, freq, func, metricCols, prefix, fill) - return(enriched_tsdf) + enriched_df:DataFrame = rs.aggregate(self, freq, func, metricCols, prefix, fill) + return (_ResampledTSDF(enriched_df, ts_col = self.ts_col, partition_cols = self.partitionCols, freq = freq, func = func)) + + def interpolate(self, freq: str, func: str, method: str, target_cols: List[str] = None,ts_col: str = None, partition_cols: List[str]=None, show_interpolated:bool = False): + """ + function to interpolate based on frequency, aggregation, and fill similar to pandas. Data will first be aggregated using resample, then missing values + will be filled based on the fill calculation. + + :param freq: frequency for upsample - valid inputs are "hr", "min", "sec" corresponding to hour, minute, or second + :param func: function used to aggregate input + :param method: function used to fill missing values e.g. linear, null, zero, bfill, ffill + :param target_cols [optional]: columns that should be interpolated, by default interpolates all numeric columns + :param ts_col [optional]: specify other ts_col, by default this uses the ts_col within the TSDF object + :param partition_cols [optional]: specify other partition_cols, by default this uses the partition_cols within the TSDF object + :param show_interpolated [optional]: if true will include an additional column to show which rows have been fully interpolated. + :return: new TSDF object containing interpolated data + """ + + # Set defaults for target columns, timestamp column and partition columns when not provided + if ts_col is None: + ts_col = self.ts_col + if partition_cols is None: + partition_cols = self.partitionCols + if target_cols is None: + prohibited_cols: List[str] = partition_cols + [ts_col] + summarizable_types = ['int', 'bigint', 'float', 'double'] + + # get summarizable find summarizable columns + target_cols:List[str] = [datatype[0] for datatype in self.df.dtypes if + ((datatype[1] in summarizable_types) and + (datatype[0].lower() not in prohibited_cols))] + + interpolate_service: Interpolation = Interpolation(is_resampled=False) + tsdf_input = TSDF(self.df, ts_col = ts_col, partition_cols=partition_cols) + interpolated_df:DataFrame = interpolate_service.interpolate(tsdf_input,ts_col, partition_cols,target_cols, freq, func, method, show_interpolated) + + return TSDF(interpolated_df, ts_col = ts_col, partition_cols=partition_cols) def calc_bars(tsdf, freq, func = None, metricCols = None, fill = None): @@ -546,3 +627,121 @@ def calc_bars(tsdf, freq, func = None, metricCols = None, fill = None): bars = bars.select(sel_and_sort) return(TSDF(bars, resample_open.ts_col, resample_open.partitionCols)) + + def fourier_transform(self, timestep, valueCol): + """ + Function to fourier transform the time series to its frequency domain representation. + :param timestep: timestep value to be used for getting the frequency scale + :param valueCol: name of the time domain data column which will be transformed + """ + + def tempo_fourier_util(pdf): + """ + This method is a vanilla python logic implementing fourier transform on a numpy array using the scipy module. + This method is meant to be called from Tempo TSDF as a pandas function API on Spark + """ + select_cols = list(pdf.columns) + pdf.sort_values(by=['tpoints'], inplace=True, ascending=True) + y = np.array(pdf['tdval']) + tran = fft(y) + r = tran.real + i = tran.imag + pdf['ft_real'] = r + pdf['ft_imag'] = i + N = tran.shape + xf = fftfreq(N[0], timestep) + pdf['freq'] = xf + return pdf[select_cols + ['freq', 'ft_real', 'ft_imag']] + + valueCol = self.__validated_column(self.df, valueCol) + data = self.df + if self.sequence_col: + if self.partitionCols == []: + data = data.withColumn("dummy_group", f.lit("dummy_val")) + data = data.select(f.col("dummy_group"), self.ts_col, self.sequence_col, f.col(valueCol)).withColumn( + "tdval", f.col(valueCol)).withColumn("tpoints", f.col(self.ts_col)) + return_schema = ",".join( + [f"{i[0]} {i[1]}" for i in data.dtypes] + + + ["freq double", "ft_real double", "ft_imag double"] + ) + result = data.groupBy("dummy_group").applyInPandas(tempo_fourier_util, return_schema) + result = result.drop("dummy_group", "tdval", "tpoints") + else: + group_cols = self.partitionCols + data = data.select(*group_cols, self.ts_col, self.sequence_col, f.col(valueCol)).withColumn( + "tdval", f.col(valueCol)).withColumn("tpoints", f.col(self.ts_col)) + return_schema = ",".join( + [f"{i[0]} {i[1]}" for i in data.dtypes] + + + ["freq double", "ft_real double", "ft_imag double"] + ) + result = data.groupBy(*group_cols).applyInPandas(tempo_fourier_util, return_schema) + result = result.drop("tdval", "tpoints") + else: + if self.partitionCols == []: + data = data.withColumn("dummy_group", f.lit("dummy_val")) + data = data.select(f.col("dummy_group"), self.ts_col, f.col(valueCol)).withColumn( + "tdval", f.col(valueCol)).withColumn("tpoints", f.col(self.ts_col)) + return_schema = ",".join( + [f"{i[0]} {i[1]}" for i in data.dtypes] + + + ["freq double", "ft_real double", "ft_imag double"] + ) + result = data.groupBy("dummy_group").applyInPandas(tempo_fourier_util, return_schema) + result = result.drop("dummy_group", "tdval", "tpoints") + else: + group_cols = self.partitionCols + data = data.select(*group_cols, self.ts_col, f.col(valueCol)).withColumn( + "tdval", f.col(valueCol)).withColumn("tpoints", f.col(self.ts_col)) + return_schema = ",".join( + [f"{i[0]} {i[1]}" for i in data.dtypes] + + + ["freq double", "ft_real double", "ft_imag double"] + ) + result = data.groupBy(*group_cols).applyInPandas(tempo_fourier_util, return_schema) + result = result.drop("tdval", "tpoints") + + return TSDF(result, self.ts_col, self.partitionCols, self.sequence_col) + + +class _ResampledTSDF(TSDF): + def __init__(self, df, ts_col="event_ts", partition_cols=None, sequence_col = None, freq = None, func = None): + super(_ResampledTSDF, self).__init__(df, ts_col, partition_cols, sequence_col) + self.__freq = freq + self.__func = func + + def interpolate(self, method: str, target_cols: List[str] = None, show_interpolated:bool = False): + """ + function to interpolate based on frequency, aggregation, and fill similar to pandas. This method requires an already sampled data set in order to use. + + :param method: function used to fill missing values e.g. linear, null, zero, bfill, ffill + :param target_cols [optional]: columns that should be interpolated, by default interpolates all numeric columns + :param show_interpolated [optional]: if true will include an additional column to show which rows have been fully interpolated. + :return: new TSDF object containing interpolated data + """ + + # Set defaults for target columns, timestamp column and partition columns when not provided + if target_cols is None: + prohibited_cols: List[str] = self.partitionCols + [self.ts_col] + summarizable_types = ['int', 'bigint', 'float', 'double'] + + # get summarizable find summarizable columns + target_cols:List[str] = [datatype[0] for datatype in self.df.dtypes if + ((datatype[1] in summarizable_types) and + (datatype[0].lower() not in prohibited_cols))] + + interpolate_service: Interpolation = Interpolation(is_resampled=True) + tsdf_input = TSDF(self.df, ts_col = self.ts_col, partition_cols=self.partitionCols) + interpolated_df = interpolate_service.interpolate( + tsdf=tsdf_input, + ts_col=self.ts_col, + partition_cols=self.partitionCols, + target_cols=target_cols, + freq=self.__freq, + func=self.__func, + method=method, + show_interpolated=show_interpolated, + ) + + return TSDF(interpolated_df, ts_col = self.ts_col, partition_cols=self.partitionCols) diff --git a/python/tempo/utils.py b/python/tempo/utils.py index a59556d5..080bafea 100644 --- a/python/tempo/utils.py +++ b/python/tempo/utils.py @@ -1,11 +1,11 @@ -from IPython.display import display as ipydisplay -from IPython.core.display import HTML -from IPython import get_ipython -import os import logging -from pyspark.sql.dataframe import DataFrame -from pandas import DataFrame as pandasDataFrame +import os +from IPython import get_ipython +from IPython.core.display import HTML +from IPython.display import display as ipydisplay +from pandas import DataFrame as pandasDataFrame +from pyspark.sql.dataframe import DataFrame logger = logging.getLogger(__name__) PLATFORM = "DATABRICKS" if "DATABRICKS_RUNTIME_VERSION" in os.environ.keys() else "NON_DATABRICKS" @@ -14,6 +14,7 @@ where the code is running from. """ + def __isnotebookenv(): """ This method returns a boolean value signifying whether the environment is a notebook environment @@ -30,28 +31,33 @@ def __isnotebookenv(): except NameError: return False + def display_html(df): """ Display method capable of displaying the dataframe in a formatted HTML structured output """ ipydisplay(HTML("")) - if isinstance(df,DataFrame): + if isinstance(df, DataFrame): df.show(truncate=False, vertical=False) elif isinstance(df, pandasDataFrame): df.head() else: logger.error("'display' method not available for this object") + def display_unavailable(df): """ This method is called when display method is not available in the environment. """ logger.error("'display' method not available in this environment. Use 'show' method instead.") + ENV_BOOLEAN = __isnotebookenv() if PLATFORM == "DATABRICKS": method = get_ipython().user_ns['display'] + + # Under 'display' key in user_ns the original databricks display method is present # to know more refer: /databricks/python_shell/scripts/db_ipykernel_launcher.py def display_improvised(obj): @@ -59,6 +65,8 @@ def display_improvised(obj): method(obj.df) else: method(obj) + + display = display_improvised elif __isnotebookenv(): def display_html_improvised(obj): @@ -66,8 +74,10 @@ def display_html_improvised(obj): display_html(obj.df) else: display_html(obj) + + display = display_html_improvised -else: +else: display = display_unavailable """ diff --git a/python/tests/ffill_data.csv b/python/tests/ffill_data.csv new file mode 100644 index 00000000..de9c0bcf --- /dev/null +++ b/python/tests/ffill_data.csv @@ -0,0 +1,20 @@ +MachineId Timestamp VariableValue VariableName MotorId +ExampleMachine 2021-10-08T18:20:14.000+0000 1.8 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:20:19.000+0000 1.7 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:20:24.000+0000 1.8 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:20:29.000+0000 1.7 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:20:34.000+0000 1.8 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:20:39.000+0000 1.7 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:20:59.000+0000 1.8 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:21:04.000+0000 1.7 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:21:09.000+0000 1.8 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:23:25.000+0000 1.8 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:23:30.000+0000 0.0 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:23:55.000+0000 1.2 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:24:00.000+0000 1.7 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:24:10.000+0000 0.0 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:21:15.000+0000 1.7 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:21:20.000+0000 1.8 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:21:25.000+0000 1.7 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:24:55.000+0000 1.2 rMotorCurrent MFU_527_11_M1 +ExampleMachine 2021-10-08T18:25:00.000+0000 1.7 rMotorCurrent MFU_527_11_M1 \ No newline at end of file diff --git a/python/tests/interpol_tests.py b/python/tests/interpol_tests.py new file mode 100644 index 00000000..db262f6e --- /dev/null +++ b/python/tests/interpol_tests.py @@ -0,0 +1,591 @@ +from pyspark.sql.types import * +from tests.tsdf_tests import SparkTest +from tempo.interpol import Interpolation +from chispa.dataframe_comparer import * +from tempo.tsdf import TSDF +from tempo.utils import * +import unittest + + +class InterpolationTest(SparkTest): + def buildTestingDataFrame(self): + schema = StructType( + [ + StructField("partition_a", StringType()), + StructField("partition_b", StringType()), + StructField("event_ts", StringType()), + StructField("value_a", FloatType()), + StructField("value_b", FloatType()), + ] + ) + + self.expected_schema = StructType( + [ + StructField("partition_a", StringType()), + StructField("partition_b", StringType()), + StructField("event_ts", StringType(), False), + StructField("value_a", DoubleType()), + StructField("value_b", DoubleType()), + StructField("is_ts_interpolated", BooleanType(), False), + StructField("is_interpolated_value_a", BooleanType(), False), + StructField("is_interpolated_value_b", BooleanType(), False), + ] + ) + + # TODO: This data set tests with multiple partitions, should still be implemented at some time. + data = [ + ["A", "A-1", "2020-01-01 00:01:10", 349.21, None], + ["A", "A-1", "2020-01-01 00:02:03", None, 4.0], + ["A", "A-2", "2020-01-01 00:01:15", 340.21, 9.0], + ["B", "B-1", "2020-01-01 00:01:15", 362.1, 4.0], + ["A", "A-2", "2020-01-01 00:01:17", 353.32, 8.0], + ["B", "B-2", "2020-01-01 00:02:14", None, 6.0], + ["A", "A-1", "2020-01-01 00:03:02", 351.32, 7.0], + ["B", "B-2", "2020-01-01 00:01:12", 361.1, 5.0], + ] + + simple_data = [ + ["A", "A-1", "2020-01-01 00:00:10", 0.0, None], + ["A", "A-1", "2020-01-01 00:01:10", 2.0, 2.0], + ["A", "A-1", "2020-01-01 00:01:32", None, None], + ["A", "A-1", "2020-01-01 00:02:03", None, None], + ["A", "A-1", "2020-01-01 00:03:32", None, 7.0], + ["A", "A-1", "2020-01-01 00:04:12", 8.0, 8.0], + ["A", "A-1", "2020-01-01 00:05:31", 11.0, None], + ] + + # construct dataframes + self.input_df = self.buildTestDF(schema, data) + self.simple_input_df = self.buildTestDF(schema, simple_data) + + # generate TSDF + self.input_tsdf = TSDF( + self.input_df, + partition_cols=["partition_a", "partition_b"], + ts_col="event_ts", + ) + self.simple_input_tsdf = TSDF( + self.simple_input_df, + partition_cols=["partition_a", "partition_b"], + ts_col="event_ts", + ) + + # register interpolation helper + self.interpolate_helper = Interpolation(is_resampled=False) + + +class InterpolationUnitTest(InterpolationTest): + def test_fill_validation(self): + """Test fill parameter is valid.""" + self.buildTestingDataFrame() + try: + self.interpolate_helper.interpolate( + tsdf=self.input_tsdf, + partition_cols=["partition_a", "partition_b"], + target_cols=["value_a", "value_b"], + freq="30 seconds", + ts_col="event_ts", + func="mean", + method="abcd", + show_interpolated=True, + ) + except ValueError as e: + self.assertEqual(type(e), ValueError) + else: + self.fail("ValueError not raised") + + def test_target_column_validation(self): + """Test target columns exist in schema, and are of the right type (numeric).""" + self.buildTestingDataFrame() + try: + self.interpolate_helper.interpolate( + tsdf=self.input_tsdf, + partition_cols=["partition_a", "partition_b"], + target_cols=["partition_a", "value_b"], + freq="30 seconds", + ts_col="event_ts", + func="mean", + method="zero", + show_interpolated=True, + ) + except ValueError as e: + self.assertEqual(type(e), ValueError) + else: + self.fail("ValueError not raised") + + def test_partition_column_validation(self): + """Test partition columns exist in schema.""" + self.buildTestingDataFrame() + try: + self.interpolate_helper.interpolate( + tsdf=self.input_tsdf, + partition_cols=["partition_c", "partition_b"], + target_cols=["value_a", "value_b"], + freq="30 seconds", + ts_col="event_ts", + func="mean", + method="zero", + show_interpolated=True, + ) + except ValueError as e: + self.assertEqual(type(e), ValueError) + else: + self.fail("ValueError not raised") + + def test_ts_column_validation(self): + """Test time series column exist in schema.""" + self.buildTestingDataFrame() + try: + self.interpolate_helper.interpolate( + tsdf=self.input_tsdf, + partition_cols=["partition_a", "partition_b"], + target_cols=["value_a", "value_b"], + freq="30 seconds", + ts_col="value_a", + func="mean", + method="zero", + show_interpolated=True, + ) + except ValueError as e: + self.assertEqual(type(e), ValueError) + else: + self.fail("ValueError not raised") + + def test_zero_fill_interpolation(self): + """Test zero fill interpolation. + + For zero fill interpolation we expect any missing timeseries values to be generated and filled in with zeroes. + If after sampling there are null values in the target column these will also be filled with zeroes. + + """ + self.buildTestingDataFrame() + + expected_data = [ + ["A", "A-1", "2020-01-01 00:00:00", 0.0, 0.0, False, False, True], + ["A", "A-1", "2020-01-01 00:00:30", 0.0, 0.0, True, True, True], + ["A", "A-1", "2020-01-01 00:01:00", 2.0, 2.0, False, False, False], + ["A", "A-1", "2020-01-01 00:01:30", 0.0, 0.0, False, True, True], + ["A", "A-1", "2020-01-01 00:02:00", 0.0, 0.0, False, True, True], + ["A", "A-1", "2020-01-01 00:02:30", 0.0, 0.0, True, True, True], + ["A", "A-1", "2020-01-01 00:03:00", 0.0, 0.0, True, True, True], + ["A", "A-1", "2020-01-01 00:03:30", 0.0, 7.0, False, True, False], + ["A", "A-1", "2020-01-01 00:04:00", 8.0, 8.0, False, False, False], + ["A", "A-1", "2020-01-01 00:04:30", 0.0, 0.0, True, True, True], + ["A", "A-1", "2020-01-01 00:05:00", 0.0, 0.0, True, True, True], + ["A", "A-1", "2020-01-01 00:05:30", 11.0, 0.0, False, False, True], + ] + + expected_df: DataFrame = self.buildTestDF(self.expected_schema, expected_data) + + actual_df: DataFrame = self.interpolate_helper.interpolate( + tsdf=self.simple_input_tsdf, + partition_cols=["partition_a", "partition_b"], + target_cols=["value_a", "value_b"], + freq="30 seconds", + ts_col="event_ts", + func="mean", + method="zero", + show_interpolated=True, + ) + + assert_df_equality(expected_df, actual_df, ignore_nullable=True) + + def test_null_fill_interpolation(self): + """Test null fill interpolation. + + For null fill interpolation we expect any missing timeseries values to be generated and filled in with nulls. + If after sampling there are null values in the target column these will also be kept as nulls. + + + """ + self.buildTestingDataFrame() + + expected_data = [ + ["A", "A-1", "2020-01-01 00:00:00", 0.0, None, False, False, True], + ["A", "A-1", "2020-01-01 00:00:30", None, None, True, True, True], + ["A", "A-1", "2020-01-01 00:01:00", 2.0, 2.0, False, False, False], + ["A", "A-1", "2020-01-01 00:01:30", None, None, False, True, True], + ["A", "A-1", "2020-01-01 00:02:00", None, None, False, True, True], + ["A", "A-1", "2020-01-01 00:02:30", None, None, True, True, True], + ["A", "A-1", "2020-01-01 00:03:00", None, None, True, True, True], + ["A", "A-1", "2020-01-01 00:03:30", None, 7.0, False, True, False], + ["A", "A-1", "2020-01-01 00:04:00", 8.0, 8.0, False, False, False], + ["A", "A-1", "2020-01-01 00:04:30", None, None, True, True, True], + ["A", "A-1", "2020-01-01 00:05:00", None, None, True, True, True], + ["A", "A-1", "2020-01-01 00:05:30", 11.0, None, False, False, True], + ] + + expected_df: DataFrame = self.buildTestDF(self.expected_schema, expected_data) + + actual_df: DataFrame = self.interpolate_helper.interpolate( + tsdf=self.simple_input_tsdf, + partition_cols=["partition_a", "partition_b"], + target_cols=["value_a", "value_b"], + freq="30 seconds", + ts_col="event_ts", + func="mean", + method="null", + show_interpolated=True, + ) + + assert_df_equality(expected_df, actual_df, ignore_nullable=True) + + def test_back_fill_interpolation(self): + """Test back fill interpolation. + + For back fill interpolation we expect any missing timeseries values to be generated and filled with the nearest subsequent non-null value. + If the right (latest) edge contains is null then preceding interpolated values will be null until the next non-null value. + Pre-existing nulls are treated as the same as missing values, and will be replaced with an interpolated value. + + """ + self.buildTestingDataFrame() + + expected_data = [ + ["A", "A-1", "2020-01-01 00:00:00", 0.0, 2.0, False, False, True], + ["A", "A-1", "2020-01-01 00:00:30", 2.0, 2.0, True, True, True], + ["A", "A-1", "2020-01-01 00:01:00", 2.0, 2.0, False, False, False], + ["A", "A-1", "2020-01-01 00:01:30", 8.0, 7.0, False, True, True], + ["A", "A-1", "2020-01-01 00:02:00", 8.0, 7.0, False, True, True], + ["A", "A-1", "2020-01-01 00:02:30", 8.0, 7.0, True, True, True], + ["A", "A-1", "2020-01-01 00:03:00", 8.0, 7.0, True, True, True], + ["A", "A-1", "2020-01-01 00:03:30", 8.0, 7.0, False, True, False], + ["A", "A-1", "2020-01-01 00:04:00", 8.0, 8.0, False, False, False], + ["A", "A-1", "2020-01-01 00:04:30", 11.0, None, True, True, True], + ["A", "A-1", "2020-01-01 00:05:00", 11.0, None, True, True, True], + ["A", "A-1", "2020-01-01 00:05:30", 11.0, None, False, False, True], + ] + + expected_df: DataFrame = self.buildTestDF(self.expected_schema, expected_data) + + actual_df: DataFrame = self.interpolate_helper.interpolate( + tsdf=self.simple_input_tsdf, + partition_cols=["partition_a", "partition_b"], + target_cols=["value_a", "value_b"], + freq="30 seconds", + ts_col="event_ts", + func="mean", + method="bfill", + show_interpolated=True, + ) + + assert_df_equality(expected_df, actual_df, ignore_nullable=True) + + def test_forward_fill_interpolation(self): + """Test forward fill interpolation. + + For forward fill interpolation we expect any missing timeseries values to be generated and filled with the nearest preceding non-null value. + If the left (earliest) edge is null then subsequent interpolated values will be null until the next non-null value. + Pre-existing nulls are treated as the same as missing values, and will be replaced with an interpolated value. + + """ + self.buildTestingDataFrame() + + expected_data = [ + ["A", "A-1", "2020-01-01 00:00:00", 0.0, None, False, False, True], + ["A", "A-1", "2020-01-01 00:00:30", 0.0, None, True, True, True], + ["A", "A-1", "2020-01-01 00:01:00", 2.0, 2.0, False, False, False], + ["A", "A-1", "2020-01-01 00:01:30", 2.0, 2.0, False, True, True], + ["A", "A-1", "2020-01-01 00:02:00", 2.0, 2.0, False, True, True], + ["A", "A-1", "2020-01-01 00:02:30", 2.0, 2.0, True, True, True], + ["A", "A-1", "2020-01-01 00:03:00", 2.0, 2.0, True, True, True], + ["A", "A-1", "2020-01-01 00:03:30", 2.0, 7.0, False, True, False], + ["A", "A-1", "2020-01-01 00:04:00", 8.0, 8.0, False, False, False], + ["A", "A-1", "2020-01-01 00:04:30", 8.0, 8.0, True, True, True], + ["A", "A-1", "2020-01-01 00:05:00", 8.0, 8.0, True, True, True], + ["A", "A-1", "2020-01-01 00:05:30", 11.0, 8.0, False, False, True], + ] + + expected_df: DataFrame = self.buildTestDF(self.expected_schema, expected_data) + + actual_df: DataFrame = self.interpolate_helper.interpolate( + tsdf=self.simple_input_tsdf, + partition_cols=["partition_a", "partition_b"], + target_cols=["value_a", "value_b"], + freq="30 seconds", + ts_col="event_ts", + func="mean", + method="ffill", + show_interpolated=True, + ) + + assert_df_equality(expected_df, actual_df, ignore_nullable=True) + + def test_linear_fill_interpolation(self): + """Test linear fill interpolation. + + For linear fill interpolation we expect any missing timeseries values to be generated and filled using linear interpolation. + If the right (latest) or left (earliest) edges is null then subsequent interpolated values will be null until the next non-null value. + Pre-existing nulls are treated as the same as missing values, and will be replaced with an interpolated value. + + """ + self.buildTestingDataFrame() + + expected_data = [ + ["A", "A-1", "2020-01-01 00:00:00", 0.0, None, False, False, True], + ["A", "A-1", "2020-01-01 00:00:30", 1.0, None, True, True, True], + ["A", "A-1", "2020-01-01 00:01:00", 2.0, 2.0, False, False, False], + ["A", "A-1", "2020-01-01 00:01:30", 3.0, 3.0, False, True, True], + ["A", "A-1", "2020-01-01 00:02:00", 4.0, 4.0, False, True, True], + ["A", "A-1", "2020-01-01 00:02:30", 5.0, 5.0, True, True, True], + ["A", "A-1", "2020-01-01 00:03:00", 6.0, 6.0, True, True, True], + ["A", "A-1", "2020-01-01 00:03:30", 7.0, 7.0, False, True, False], + ["A", "A-1", "2020-01-01 00:04:00", 8.0, 8.0, False, False, False], + ["A", "A-1", "2020-01-01 00:04:30", 9.0, None, True, True, True], + ["A", "A-1", "2020-01-01 00:05:00", 10.0, None, True, True, True], + ["A", "A-1", "2020-01-01 00:05:30", 11.0, None, False, False, True], + ] + + expected_df: DataFrame = self.buildTestDF(self.expected_schema, expected_data) + + actual_df: DataFrame = self.interpolate_helper.interpolate( + tsdf=self.simple_input_tsdf, + partition_cols=["partition_a", "partition_b"], + target_cols=["value_a", "value_b"], + freq="30 seconds", + ts_col="event_ts", + func="mean", + method="linear", + show_interpolated=True, + ) + + assert_df_equality(expected_df, actual_df, ignore_nullable=True) + + def test_show_interpolated(self): + """Test linear `show_interpolated` flag + + For linear fill interpolation we expect any missing timeseries values to be generated and filled using linear interpolation. + If the right (latest) or left (earliest) edges is null then subsequent interpolated values will be null until the next non-null value. + Pre-existing nulls are treated as the same as missing values, and will be replaced with an interpolated value. + + """ + self.buildTestingDataFrame() + + expected_data = [ + ["A", "A-1", "2020-01-01 00:00:00", 0.0, None], + ["A", "A-1", "2020-01-01 00:00:30", 1.0, None], + ["A", "A-1", "2020-01-01 00:01:00", 2.0, 2.0], + ["A", "A-1", "2020-01-01 00:01:30", 3.0, 3.0], + ["A", "A-1", "2020-01-01 00:02:00", 4.0, 4.0], + ["A", "A-1", "2020-01-01 00:02:30", 5.0, 5.0], + ["A", "A-1", "2020-01-01 00:03:00", 6.0, 6.0], + ["A", "A-1", "2020-01-01 00:03:30", 7.0, 7.0], + ["A", "A-1", "2020-01-01 00:04:00", 8.0, 8.0], + ["A", "A-1", "2020-01-01 00:04:30", 9.0, None], + ["A", "A-1", "2020-01-01 00:05:00", 10.0, None], + ["A", "A-1", "2020-01-01 00:05:30", 11.0, None], + ] + + expected_schema = StructType( + [ + StructField("partition_a", StringType()), + StructField("partition_b", StringType()), + StructField("event_ts", StringType()), + StructField("value_a", DoubleType()), + StructField("value_b", DoubleType()), + ] + ) + + expected_df: DataFrame = self.buildTestDF(expected_schema, expected_data) + + actual_df: DataFrame = self.interpolate_helper.interpolate( + tsdf=self.simple_input_tsdf, + partition_cols=["partition_a", "partition_b"], + target_cols=["value_a", "value_b"], + freq="30 seconds", + ts_col="event_ts", + func="mean", + method="linear", + show_interpolated=False, + ) + + assert_df_equality(expected_df, actual_df, ignore_nullable=True) + + +class InterpolationIntegrationTest(InterpolationTest): + def test_interpolation_using_default_tsdf_params(self): + """ + Verify that interpolate uses the ts_col and partition_col from TSDF if not explicitly specified, + and all columns numeric are automatically interpolated if target_col is not specified. + """ + self.buildTestingDataFrame() + + expected_data = [ + ["A", "A-1", "2020-01-01 00:00:00", 0.0, None], + ["A", "A-1", "2020-01-01 00:00:30", 1.0, None], + ["A", "A-1", "2020-01-01 00:01:00", 2.0, 2.0], + ["A", "A-1", "2020-01-01 00:01:30", 3.0, 3.0], + ["A", "A-1", "2020-01-01 00:02:00", 4.0, 4.0], + ["A", "A-1", "2020-01-01 00:02:30", 5.0, 5.0], + ["A", "A-1", "2020-01-01 00:03:00", 6.0, 6.0], + ["A", "A-1", "2020-01-01 00:03:30", 7.0, 7.0], + ["A", "A-1", "2020-01-01 00:04:00", 8.0, 8.0], + ["A", "A-1", "2020-01-01 00:04:30", 9.0, None], + ["A", "A-1", "2020-01-01 00:05:00", 10.0, None], + ["A", "A-1", "2020-01-01 00:05:30", 11.0, None], + ] + + expected_schema = StructType( + [ + StructField("partition_a", StringType()), + StructField("partition_b", StringType()), + StructField("event_ts", StringType()), + StructField("value_a", DoubleType()), + StructField("value_b", DoubleType()), + ] + ) + + expected_df: DataFrame = self.buildTestDF(expected_schema, expected_data) + + actual_df: DataFrame = self.simple_input_tsdf.interpolate( + freq="30 seconds", func="mean", method="linear" + ).df + + assert_df_equality(expected_df, actual_df, ignore_nullable=True) + + def test_interpolation_using_custom_params(self): + """Verify that by specifying optional paramters it will change the result of the interpolation based on those modified params.""" + self.buildTestingDataFrame() + + expected_data = [ + ["A", "A-1", "2020-01-01 00:00:00", 0.0, False, False], + ["A", "A-1", "2020-01-01 00:00:30", 1.0, True, True], + ["A", "A-1", "2020-01-01 00:01:00", 2.0, False, False], + ["A", "A-1", "2020-01-01 00:01:30", 3.0, False, True], + ["A", "A-1", "2020-01-01 00:02:00", 4.0, False, True], + ["A", "A-1", "2020-01-01 00:02:30", 5.0, True, True], + ["A", "A-1", "2020-01-01 00:03:00", 6.0, True, True], + ["A", "A-1", "2020-01-01 00:03:30", 7.0, False, True], + ["A", "A-1", "2020-01-01 00:04:00", 8.0, False, False], + ["A", "A-1", "2020-01-01 00:04:30", 9.0, True, True], + ["A", "A-1", "2020-01-01 00:05:00", 10.0, True, True], + ["A", "A-1", "2020-01-01 00:05:30", 11.0, False, False], + ] + + expected_schema = StructType( + [ + StructField("partition_a", StringType()), + StructField("partition_b", StringType()), + StructField("event_ts", StringType(), False), + StructField("value_a", DoubleType()), + StructField("is_ts_interpolated", BooleanType(), False), + StructField("is_interpolated_value_a", BooleanType(), False), + ] + ) + + expected_df: DataFrame = self.buildTestDF(expected_schema, expected_data) + + actual_df: DataFrame = self.simple_input_tsdf.interpolate( + ts_col="event_ts", + show_interpolated=True, + partition_cols=["partition_a", "partition_b"], + target_cols=["value_a"], + freq="30 seconds", + func="mean", + method="linear", + ).df + + assert_df_equality(expected_df, actual_df, ignore_nullable=True) + + def test_tsdf_constructor_params_are_updated(self): + """Verify that resulting TSDF class has the correct values for ts_col and partition_col based on the interpolation.""" + self.buildTestingDataFrame() + + actual_tsdf: TSDF = self.simple_input_tsdf.interpolate( + ts_col="event_ts", + show_interpolated=True, + partition_cols=["partition_b"], + target_cols=["value_a"], + freq="30 seconds", + func="mean", + method="linear", + ) + + self.assertEqual(actual_tsdf.ts_col, "event_ts") + self.assertEqual(actual_tsdf.partitionCols, ["partition_b"]) + + def test_interpolation_on_sampled_data(self): + """Verify interpolation can be chained with resample within the TSDF class""" + self.buildTestingDataFrame() + + expected_data = [ + ["A", "A-1", "2020-01-01 00:00:00", 0.0, False, False], + ["A", "A-1", "2020-01-01 00:00:30", 1.0, True, True], + ["A", "A-1", "2020-01-01 00:01:00", 2.0, False, False], + ["A", "A-1", "2020-01-01 00:01:30", 3.0, False, True], + ["A", "A-1", "2020-01-01 00:02:00", 4.0, False, True], + ["A", "A-1", "2020-01-01 00:02:30", 5.0, True, True], + ["A", "A-1", "2020-01-01 00:03:00", 6.0, True, True], + ["A", "A-1", "2020-01-01 00:03:30", 7.0, False, True], + ["A", "A-1", "2020-01-01 00:04:00", 8.0, False, False], + ["A", "A-1", "2020-01-01 00:04:30", 9.0, True, True], + ["A", "A-1", "2020-01-01 00:05:00", 10.0, True, True], + ["A", "A-1", "2020-01-01 00:05:30", 11.0, False, False], + ] + + expected_schema = StructType( + [ + StructField("partition_a", StringType()), + StructField("partition_b", StringType()), + StructField("event_ts", StringType(), False), + StructField("value_a", DoubleType()), + StructField("is_ts_interpolated", BooleanType(), False), + StructField("is_interpolated_value_a", BooleanType(), False), + ] + ) + + expected_df: DataFrame = self.buildTestDF(expected_schema, expected_data) + + actual_df: DataFrame = ( + self.simple_input_tsdf.resample(freq="30 seconds", func="mean", fill=None) + .interpolate( + method="linear", target_cols=["value_a"], show_interpolated=True + ) + .df + ) + + assert_df_equality(expected_df, actual_df, ignore_nullable=True) + + def test_defaults_with_resampled_df(self): + """Verify interpolation can be chained with resample within the TSDF class""" + self.buildTestingDataFrame() + + expected_data = [ + ["A", "A-1", "2020-01-01 00:00:00", 0.0, None], + ["A", "A-1", "2020-01-01 00:00:30", 0.0, None], + ["A", "A-1", "2020-01-01 00:01:00", 2.0, 2.0], + ["A", "A-1", "2020-01-01 00:01:30", 2.0, 2.0], + ["A", "A-1", "2020-01-01 00:02:00", 2.0, 2.0], + ["A", "A-1", "2020-01-01 00:02:30", 2.0, 2.0], + ["A", "A-1", "2020-01-01 00:03:00", 2.0, 2.0], + ["A", "A-1", "2020-01-01 00:03:30", 2.0, 7.0], + ["A", "A-1", "2020-01-01 00:04:00", 8.0, 8.0], + ["A", "A-1", "2020-01-01 00:04:30", 8.0, 8.0], + ["A", "A-1", "2020-01-01 00:05:00", 8.0, 8.0], + ["A", "A-1", "2020-01-01 00:05:30", 11.0, 8.0], + ] + + expected_schema = StructType( + [ + StructField("partition_a", StringType()), + StructField("partition_b", StringType()), + StructField("event_ts", StringType(), False), + StructField("value_a", DoubleType()), + StructField("value_b", DoubleType()) + ] + ) + + expected_df: DataFrame = self.buildTestDF(expected_schema, expected_data) + + actual_df: DataFrame = ( + self.simple_input_tsdf.resample(freq="30 seconds", func="mean", fill=None) + .interpolate( + method="ffill" + ) + .df + ) + + assert_df_equality(expected_df, actual_df, ignore_nullable=True) + +## MAIN +if __name__ == '__main__': + unittest.main() diff --git a/python/tests/tests.py b/python/tests/tsdf_tests.py similarity index 90% rename from python/tests/tests.py rename to python/tests/tsdf_tests.py index e7273773..09900da6 100644 --- a/python/tests/tests.py +++ b/python/tests/tsdf_tests.py @@ -8,7 +8,6 @@ from tempo.tsdf import TSDF from tempo.utils import * - class SparkTest(unittest.TestCase): ## ## Fixtures @@ -18,6 +17,8 @@ def setUp(self): .config("spark.jars.packages", "io.delta:delta-core_2.12:0.7.0") \ .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \ .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog") \ + .config("spark.driver.extraJavaOptions", "-Dio.netty.tryReflectionSetAccessible=true") \ + .config("spark.executor.extraJavaOptions", "-Dio.netty.tryReflectionSetAccessible=true") \ .master("local") \ .getOrCreate()) self.spark.conf.set("spark.sql.shuffle.partitions", 1) @@ -177,6 +178,12 @@ def test_asof_join(self): StructField("right_event_ts", StringType()), StructField("right_bid_pr", FloatType()), StructField("right_ask_pr", FloatType())]) + expectedSchemaNoRightPrefix = StructType([StructField("symbol", StringType()), + StructField("left_event_ts", StringType()), + StructField("left_trade_pr", FloatType()), + StructField("event_ts", StringType()), + StructField("bid_pr", FloatType()), + StructField("ask_pr", FloatType())]) left_data = [["S1", "2020-08-01 00:00:10", 349.21], ["S1", "2020-08-01 00:01:12", 351.32], @@ -204,10 +211,18 @@ def test_asof_join(self): tsdf_right = TSDF(dfRight, ts_col="event_ts", partition_cols=["symbol"]) joined_df = tsdf_left.asofJoin(tsdf_right, left_prefix="left", right_prefix="right").df + non_prefix_joined_df = tsdf_left.asofJoin(tsdf_right, left_prefix="left", right_prefix = '').df # joined dataframe should equal the expected dataframe self.assertDataFramesEqual(joined_df, dfExpected) + noRightPrefixdfExpected = self.buildTestDF(expectedSchemaNoRightPrefix, expected_data, ["left_event_ts", "event_ts"]) + + self.assertDataFramesEqual(non_prefix_joined_df, noRightPrefixdfExpected) + + spark_sql_joined_df = tsdf_left.asofJoin(tsdf_right, left_prefix="left", right_prefix="right").df + self.assertDataFramesEqual(spark_sql_joined_df, dfExpected) + def test_asof_join_skip_nulls_disabled(self): """AS-OF Join with skip nulls disabled""" leftSchema = StructType([StructField("symbol", StringType()), @@ -379,6 +394,51 @@ def test_partitioned_asof_join(self): self.assertDataFramesEqual(joined_df, dfExpected) +class FourierTransformTest(SparkTest): + + def test_fourier_transform(self): + """Test of fourier transform functionality in TSDF objects""" + schema = StructType([StructField("group",StringType()), + StructField("time",LongType()), + StructField("val",DoubleType())]) + + expectedSchema = StructType([StructField("group",StringType()), + StructField("time",LongType()), + StructField("val",DoubleType()), + StructField("freq",DoubleType()), + StructField("ft_real",DoubleType()), + StructField("ft_imag",DoubleType())]) + + data = [["Emissions", 1949, 2206.690829], + ["Emissions", 1950, 2382.046176], + ["Emissions", 1951, 2526.687327], + ["Emissions", 1952, 2473.373964], + ["WindGen", 1980, 0.0], + ["WindGen", 1981, 0.0], + ["WindGen", 1982, 0.0], + ["WindGen", 1983, 0.029667962]] + + expected_data = [["Emissions", 1949, 2206.690829, 0.0, 9588.798296, -0.0], + ["Emissions", 1950, 2382.046176, 0.25, -319.996498, 91.32778800000006], + ["Emissions", 1951, 2526.687327, -0.5, -122.0419839999995, -0.0], + ["Emissions", 1952, 2473.373964, -0.25, -319.996498, -91.32778800000006], + ["WindGen", 1980, 0.0, 0.0, 0.029667962, -0.0], + ["WindGen", 1981, 0.0, 0.25, 0.0, 0.029667962], + ["WindGen", 1982, 0.0, -0.5, -0.029667962, -0.0], + ["WindGen", 1983, 0.029667962, -0.25, 0.0, -0.029667962]] + + # construct dataframes + df = self.buildTestDF(schema, data, ts_cols=['time']) + dfExpected = self.buildTestDF(expectedSchema, expected_data, ts_cols=['time']) + + # convert to TSDF + tsdf_left = TSDF(df, ts_col="time", partition_cols=["group"]) + result_tsdf = tsdf_left.fourier_transform(1, 'val') + + # should be equal to the expected dataframe + self.assertDataFramesEqual(result_tsdf.df, dfExpected) + + class RangeStatsTest(SparkTest): def test_range_stats(self): diff --git a/scala/project/build.properties b/scala/project/build.properties new file mode 100644 index 00000000..dbae93bc --- /dev/null +++ b/scala/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.4.9 diff --git a/scala/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/inputs b/scala/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/inputs new file mode 100644 index 00000000..3135d87c --- /dev/null +++ b/scala/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/inputs @@ -0,0 +1 @@ +1318958014 \ No newline at end of file diff --git a/scala/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/output b/scala/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/output new file mode 100644 index 00000000..c5884377 --- /dev/null +++ b/scala/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/output @@ -0,0 +1 @@ +{"cachedDescriptor":".","configurations":[{"configuration":{"name":"compile"},"modules":[],"details":[]},{"configuration":{"name":"compile-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"docs"},"modules":[],"details":[]},{"configuration":{"name":"optional"},"modules":[],"details":[]},{"configuration":{"name":"plugin"},"modules":[],"details":[]},{"configuration":{"name":"pom"},"modules":[],"details":[]},{"configuration":{"name":"provided"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"runtime"},"modules":[],"details":[]},{"configuration":{"name":"runtime-internal"},"modules":[],"details":[]},{"configuration":{"name":"scala-tool"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-compiler","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-compiler","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-compiler.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-compiler","revision":"2.12.12","configurations":"optional","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-compiler","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-compiler.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"optional","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-reflect","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-reflect","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-reflect.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang.modules","name":"scala-xml_2.12","revision":"1.0.6","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-lang","name":"*","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-xml_2.12","type":"bundle","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"http://www.scala-lang.org/","extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["BSD 3-clause","http://opensource.org/licenses/BSD-3-Clause"]],"callers":[]},{"module":{"organization":"jline","name":"jline","revision":"2.14.6","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"jline","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.jar"]],"missingArtifacts":[],"evicted":false,"extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["The BSD License","http://www.opensource.org/licenses/bsd-license.php"]],"callers":[]},{"module":{"organization":"org.fusesource.jansi","name":"jansi","revision":"1.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"jansi","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.12/jansi-1.12.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.12/jansi-1.12.jar"]],"missingArtifacts":[],"evicted":false,"extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[],"callers":[]}],"details":[]},{"configuration":{"name":"sources"},"modules":[],"details":[]},{"configuration":{"name":"test"},"modules":[],"details":[]},{"configuration":{"name":"test-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]}],"stats":{"resolveTime":-1,"downloadTime":-1,"downloadSize":-1,"cached":true},"stamps":{}} \ No newline at end of file diff --git a/scala/project/target/streams/_global/_global/_global/streams/out b/scala/project/target/streams/_global/_global/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/_global/_global/csrLogger/_global/streams/out b/scala/project/target/streams/_global/_global/csrLogger/_global/streams/out new file mode 100644 index 00000000..46fbb2c8 --- /dev/null +++ b/scala/project/target/streams/_global/_global/csrLogger/_global/streams/out @@ -0,0 +1,15 @@ +[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.12/scala-library-2.12.12.pom +[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.12/scala-compiler-2.12.12.pom +[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.12/scala-reflect-2.12.12.pom +[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.pom +[debug] downloaded https://repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.pom +[debug] downloaded https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.12/jansi-1.12.pom +[debug] downloaded https://repo1.maven.org/maven2/org/fusesource/jansi/jansi-project/1.12/jansi-project-1.12.pom +[debug] downloaded https://repo1.maven.org/maven2/org/sonatype/oss/oss-parent/9/oss-parent-9.pom +[debug] downloaded https://repo1.maven.org/maven2/org/fusesource/fusesource-pom/1.11/fusesource-pom-1.11.pom +[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar +[debug] downloaded https://repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.jar +[debug] downloaded https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.12/jansi-1.12.jar +[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.12/scala-reflect-2.12.12.jar +[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.12/scala-compiler-2.12.12.jar +[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.12/scala-library-2.12.12.jar diff --git a/scala/project/target/streams/_global/csrConfiguration/_global/streams/out b/scala/project/target/streams/_global/csrConfiguration/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/_global/csrProject/_global/streams/out b/scala/project/target/streams/_global/csrProject/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/input_dsp b/scala/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/input_dsp new file mode 100644 index 00000000..b763df57 --- /dev/null +++ b/scala/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/input_dsp @@ -0,0 +1 @@ +86562848 \ No newline at end of file diff --git a/scala/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/output_dsp b/scala/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/output_dsp new file mode 100644 index 00000000..52065aa3 --- /dev/null +++ b/scala/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/output_dsp @@ -0,0 +1 @@ +{"{\"organization\":\"org.scala-lang\",\"name\":\"scala-library\",\"revision\":\"2.12.12\",\"configurations\":\"provided\",\"isChanging\":false,\"isTransitive\":true,\"isForce\":false,\"explicitArtifacts\":[],\"inclusions\":[],\"exclusions\":[],\"extraAttributes\":{},\"crossVersion\":{\"type\":\"Disabled\"}}":{"value":{"$fields":["path","startLine"],"path":"(sbt.Classpaths.jvmBaseSettings) Defaults.scala","startLine":3090},"type":"LinePosition"}} \ No newline at end of file diff --git a/scala/project/target/streams/_global/ivyConfiguration/_global/streams/out b/scala/project/target/streams/_global/ivyConfiguration/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/_global/ivySbt/_global/streams/out b/scala/project/target/streams/_global/ivySbt/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/_global/moduleSettings/_global/streams/out b/scala/project/target/streams/_global/moduleSettings/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/_global/projectDescriptors/_global/streams/out b/scala/project/target/streams/_global/projectDescriptors/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/_global/scalaCompilerBridgeScope/_global/streams/out b/scala/project/target/streams/_global/scalaCompilerBridgeScope/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/_global/update/_global/streams/out b/scala/project/target/streams/_global/update/_global/streams/out new file mode 100644 index 00000000..8c6883a8 --- /dev/null +++ b/scala/project/target/streams/_global/update/_global/streams/out @@ -0,0 +1,3 @@ +[debug] not up to date. inChanged = true, force = false +[debug] Updating ProjectRef(uri("file:/Users/ricardo.portilla/Downloads/tempo/scala/project/"), "scala-build")... +[debug] Done updating ProjectRef(uri("file:/Users/ricardo.portilla/Downloads/tempo/scala/project/"), "scala-build") diff --git a/scala/project/target/streams/compile/_global/_global/compileOutputs/previous b/scala/project/target/streams/compile/_global/_global/compileOutputs/previous new file mode 100644 index 00000000..82dc25fd --- /dev/null +++ b/scala/project/target/streams/compile/_global/_global/compileOutputs/previous @@ -0,0 +1 @@ +["sbt.Task[scala.collection.Seq[java.nio.file.Path]]",["/Users/ricardo.portilla/Downloads/tempo/scala/project/target/scala-2.12/sbt-1.0/zinc/inc_compile_2.12.zip"]] \ No newline at end of file diff --git a/scala/project/target/streams/compile/_global/_global/discoveredMainClasses/data b/scala/project/target/streams/compile/_global/_global/discoveredMainClasses/data new file mode 100644 index 00000000..0637a088 --- /dev/null +++ b/scala/project/target/streams/compile/_global/_global/discoveredMainClasses/data @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/scala/project/target/streams/compile/bspReporter/_global/streams/out b/scala/project/target/streams/compile/bspReporter/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/compile/compile/_global/streams/out b/scala/project/target/streams/compile/compile/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/compile/compileIncremental/_global/streams/export b/scala/project/target/streams/compile/compileIncremental/_global/streams/export new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/compile/compileIncremental/_global/streams/out b/scala/project/target/streams/compile/compileIncremental/_global/streams/out new file mode 100644 index 00000000..5db86870 --- /dev/null +++ b/scala/project/target/streams/compile/compileIncremental/_global/streams/out @@ -0,0 +1,6 @@ +[debug] [zinc] IncrementalCompile ----------- +[debug] IncrementalCompile.incrementalCompile +[debug] previous = Stamps for: 0 products, 0 sources, 0 libraries +[debug] current source = Set() +[debug] > initialChanges = InitialChanges(Changes(added = Set(), removed = Set(), changed = Set(), unmodified = ...),Set(),Set(),API Changes: Set()) +[debug] Full compilation, no sources in previous analysis. diff --git a/scala/project/target/streams/compile/copyResources/_global/streams/copy-resources b/scala/project/target/streams/compile/copyResources/_global/streams/copy-resources new file mode 100644 index 00000000..9d348e7b --- /dev/null +++ b/scala/project/target/streams/compile/copyResources/_global/streams/copy-resources @@ -0,0 +1 @@ +[[{},{}],{}] \ No newline at end of file diff --git a/scala/project/target/streams/compile/copyResources/_global/streams/out b/scala/project/target/streams/compile/copyResources/_global/streams/out new file mode 100644 index 00000000..49995276 --- /dev/null +++ b/scala/project/target/streams/compile/copyResources/_global/streams/out @@ -0,0 +1,2 @@ +[debug] Copy resource mappings: +[debug] diff --git a/scala/project/target/streams/compile/dependencyClasspath/_global/streams/export b/scala/project/target/streams/compile/dependencyClasspath/_global/streams/export new file mode 100644 index 00000000..963b794c --- /dev/null +++ b/scala/project/target/streams/compile/dependencyClasspath/_global/streams/export @@ -0,0 +1 @@ +/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-compiler.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-reflect.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-xml_2.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-relation_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-interface-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist-core-assembly-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbt-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-jawn-parser_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-api-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-3.14.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-position_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/task-system_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-core_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-cache_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-reader-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/slf4j-api-1.7.26.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/testing_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbinary_2.12-0.5.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/error_prone_annotations-2.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-interface-1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/launcher-interface-1.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-agent-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/config-1.3.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/io_2.12-1.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-lm-integration_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-core_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-reflect-2.12.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-slf4j-impl-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-collection-compat_2.12-2.3.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-interface-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/checker-qual-3.4.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-core-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/caffeine-2.8.5.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ssl-config-core_2.12-0.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/completion_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classpath_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jna-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-tracking_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jansi-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-parser-combinators_2.12-1.1.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-bridge_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-xml_2.12-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jansi-2.1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-platform-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-urlconnection-3.7.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/reactive-streams-1.0.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/disruptor-3.4.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-builtins-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-apiinfo_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/lm-coursier-shaded_2.12-2.0.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-murmurhash_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/template-resolver-0.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/file-tree-views-2.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ipcsocket-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/protocol_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/run_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-okhttp_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-logging_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-scalajson_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-control_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jsch-0.1.54.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/core-macros_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classfile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-style-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okio-1.17.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-core_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/actions_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main-settings_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ivy-2.3.0-sbt-fbc4f586aeeb1591710b14eb4f41b94880dcd745.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zero-allocation-hashing-0.10.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/command_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/tasks_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-ivy_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scripted-plugin_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/collections_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/logic_2.12-1.4.9.jar diff --git a/scala/project/target/streams/compile/exportedProducts/_global/streams/export b/scala/project/target/streams/compile/exportedProducts/_global/streams/export new file mode 100644 index 00000000..c1a6fded --- /dev/null +++ b/scala/project/target/streams/compile/exportedProducts/_global/streams/export @@ -0,0 +1 @@ +/Users/ricardo.portilla/Downloads/tempo/scala/project/target/scala-2.12/sbt-1.0/classes diff --git a/scala/project/target/streams/compile/externalDependencyClasspath/_global/streams/export b/scala/project/target/streams/compile/externalDependencyClasspath/_global/streams/export new file mode 100644 index 00000000..963b794c --- /dev/null +++ b/scala/project/target/streams/compile/externalDependencyClasspath/_global/streams/export @@ -0,0 +1 @@ +/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-compiler.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-reflect.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-xml_2.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-relation_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-interface-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist-core-assembly-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbt-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-jawn-parser_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-api-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-3.14.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-position_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/task-system_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-core_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-cache_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-reader-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/slf4j-api-1.7.26.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/testing_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbinary_2.12-0.5.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/error_prone_annotations-2.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-interface-1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/launcher-interface-1.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-agent-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/config-1.3.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/io_2.12-1.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-lm-integration_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-core_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-reflect-2.12.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-slf4j-impl-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-collection-compat_2.12-2.3.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-interface-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/checker-qual-3.4.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-core-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/caffeine-2.8.5.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ssl-config-core_2.12-0.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/completion_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classpath_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jna-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-tracking_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jansi-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-parser-combinators_2.12-1.1.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-bridge_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-xml_2.12-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jansi-2.1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-platform-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-urlconnection-3.7.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/reactive-streams-1.0.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/disruptor-3.4.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-builtins-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-apiinfo_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/lm-coursier-shaded_2.12-2.0.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-murmurhash_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/template-resolver-0.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/file-tree-views-2.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ipcsocket-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/protocol_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/run_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-okhttp_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-logging_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-scalajson_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-control_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jsch-0.1.54.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/core-macros_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classfile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-style-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okio-1.17.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-core_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/actions_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main-settings_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ivy-2.3.0-sbt-fbc4f586aeeb1591710b14eb4f41b94880dcd745.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zero-allocation-hashing-0.10.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/command_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/tasks_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-ivy_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scripted-plugin_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/collections_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/logic_2.12-1.4.9.jar diff --git a/scala/project/target/streams/compile/incOptions/_global/streams/out b/scala/project/target/streams/compile/incOptions/_global/streams/out new file mode 100644 index 00000000..e5e83643 --- /dev/null +++ b/scala/project/target/streams/compile/incOptions/_global/streams/out @@ -0,0 +1,2 @@ +[debug] Created transactional ClassFileManager with tempDir = /Users/ricardo.portilla/Downloads/tempo/scala/project/target/scala-2.12/sbt-1.0/classes.bak +[debug] Removing the temporary directory used for backing up class files: /Users/ricardo.portilla/Downloads/tempo/scala/project/target/scala-2.12/sbt-1.0/classes.bak diff --git a/scala/project/target/streams/compile/internalDependencyClasspath/_global/streams/export b/scala/project/target/streams/compile/internalDependencyClasspath/_global/streams/export new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/scala/project/target/streams/compile/internalDependencyClasspath/_global/streams/export @@ -0,0 +1 @@ + diff --git a/scala/project/target/streams/compile/internalDependencyClasspath/_global/streams/out b/scala/project/target/streams/compile/internalDependencyClasspath/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/compile/managedClasspath/_global/streams/export b/scala/project/target/streams/compile/managedClasspath/_global/streams/export new file mode 100644 index 00000000..963b794c --- /dev/null +++ b/scala/project/target/streams/compile/managedClasspath/_global/streams/export @@ -0,0 +1 @@ +/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-compiler.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-reflect.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-xml_2.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-relation_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-interface-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist-core-assembly-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbt-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-jawn-parser_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-api-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-3.14.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-position_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/task-system_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-core_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-cache_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-reader-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/slf4j-api-1.7.26.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/testing_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbinary_2.12-0.5.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/error_prone_annotations-2.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-interface-1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/launcher-interface-1.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-agent-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/config-1.3.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/io_2.12-1.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-lm-integration_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-core_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-reflect-2.12.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-slf4j-impl-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-collection-compat_2.12-2.3.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-interface-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/checker-qual-3.4.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-core-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/caffeine-2.8.5.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ssl-config-core_2.12-0.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/completion_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classpath_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jna-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-tracking_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jansi-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-parser-combinators_2.12-1.1.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-bridge_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-xml_2.12-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jansi-2.1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-platform-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-urlconnection-3.7.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/reactive-streams-1.0.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/disruptor-3.4.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-builtins-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-apiinfo_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/lm-coursier-shaded_2.12-2.0.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-murmurhash_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/template-resolver-0.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/file-tree-views-2.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ipcsocket-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/protocol_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/run_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-okhttp_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-logging_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-scalajson_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-control_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jsch-0.1.54.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/core-macros_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classfile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-style-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okio-1.17.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-core_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/actions_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main-settings_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ivy-2.3.0-sbt-fbc4f586aeeb1591710b14eb4f41b94880dcd745.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zero-allocation-hashing-0.10.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/command_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/tasks_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-ivy_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scripted-plugin_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/collections_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/logic_2.12-1.4.9.jar diff --git a/scala/project/target/streams/compile/scalacOptions/_global/streams/out b/scala/project/target/streams/compile/scalacOptions/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/compile/unmanagedClasspath/_global/streams/export b/scala/project/target/streams/compile/unmanagedClasspath/_global/streams/export new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/scala/project/target/streams/compile/unmanagedClasspath/_global/streams/export @@ -0,0 +1 @@ + diff --git a/scala/project/target/streams/compile/unmanagedClasspath/_global/streams/out b/scala/project/target/streams/compile/unmanagedClasspath/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/compile/unmanagedJars/_global/streams/export b/scala/project/target/streams/compile/unmanagedJars/_global/streams/export new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/scala/project/target/streams/compile/unmanagedJars/_global/streams/export @@ -0,0 +1 @@ + diff --git a/scala/project/target/streams/runtime/dependencyClasspath/_global/streams/export b/scala/project/target/streams/runtime/dependencyClasspath/_global/streams/export new file mode 100644 index 00000000..e108aa3f --- /dev/null +++ b/scala/project/target/streams/runtime/dependencyClasspath/_global/streams/export @@ -0,0 +1 @@ +/Users/ricardo.portilla/Downloads/tempo/scala/project/target/scala-2.12/sbt-1.0/classes:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-compiler.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-reflect.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-xml_2.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-relation_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-interface-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist-core-assembly-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbt-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-jawn-parser_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-api-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-3.14.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-position_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/task-system_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-core_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-cache_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-reader-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/slf4j-api-1.7.26.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/testing_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbinary_2.12-0.5.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/error_prone_annotations-2.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-interface-1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/launcher-interface-1.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-agent-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/config-1.3.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/io_2.12-1.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-lm-integration_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-core_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-reflect-2.12.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-slf4j-impl-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-collection-compat_2.12-2.3.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-interface-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/checker-qual-3.4.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-core-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/caffeine-2.8.5.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ssl-config-core_2.12-0.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/completion_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classpath_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jna-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-tracking_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jansi-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-parser-combinators_2.12-1.1.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-bridge_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-xml_2.12-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jansi-2.1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-platform-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-urlconnection-3.7.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/reactive-streams-1.0.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/disruptor-3.4.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-builtins-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-apiinfo_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/lm-coursier-shaded_2.12-2.0.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-murmurhash_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/template-resolver-0.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/file-tree-views-2.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ipcsocket-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/protocol_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/run_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-okhttp_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-logging_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-scalajson_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-control_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jsch-0.1.54.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/core-macros_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classfile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-style-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okio-1.17.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-core_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/actions_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main-settings_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ivy-2.3.0-sbt-fbc4f586aeeb1591710b14eb4f41b94880dcd745.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zero-allocation-hashing-0.10.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/command_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/tasks_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-ivy_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scripted-plugin_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/collections_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/logic_2.12-1.4.9.jar diff --git a/scala/project/target/streams/runtime/exportedProducts/_global/streams/export b/scala/project/target/streams/runtime/exportedProducts/_global/streams/export new file mode 100644 index 00000000..c1a6fded --- /dev/null +++ b/scala/project/target/streams/runtime/exportedProducts/_global/streams/export @@ -0,0 +1 @@ +/Users/ricardo.portilla/Downloads/tempo/scala/project/target/scala-2.12/sbt-1.0/classes diff --git a/scala/project/target/streams/runtime/externalDependencyClasspath/_global/streams/export b/scala/project/target/streams/runtime/externalDependencyClasspath/_global/streams/export new file mode 100644 index 00000000..963b794c --- /dev/null +++ b/scala/project/target/streams/runtime/externalDependencyClasspath/_global/streams/export @@ -0,0 +1 @@ +/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-compiler.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-reflect.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-xml_2.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-relation_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-interface-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist-core-assembly-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbt-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-jawn-parser_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-api-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-3.14.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-position_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/task-system_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-core_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-cache_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-reader-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/slf4j-api-1.7.26.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/testing_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbinary_2.12-0.5.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/error_prone_annotations-2.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-interface-1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/launcher-interface-1.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-agent-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/config-1.3.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/io_2.12-1.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-lm-integration_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-core_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-reflect-2.12.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-slf4j-impl-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-collection-compat_2.12-2.3.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-interface-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/checker-qual-3.4.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-core-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/caffeine-2.8.5.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ssl-config-core_2.12-0.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/completion_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classpath_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jna-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-tracking_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jansi-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-parser-combinators_2.12-1.1.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-bridge_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-xml_2.12-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jansi-2.1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-platform-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-urlconnection-3.7.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/reactive-streams-1.0.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/disruptor-3.4.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-builtins-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-apiinfo_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/lm-coursier-shaded_2.12-2.0.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-murmurhash_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/template-resolver-0.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/file-tree-views-2.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ipcsocket-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/protocol_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/run_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-okhttp_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-logging_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-scalajson_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-control_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jsch-0.1.54.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/core-macros_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classfile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-style-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okio-1.17.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-core_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/actions_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main-settings_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ivy-2.3.0-sbt-fbc4f586aeeb1591710b14eb4f41b94880dcd745.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zero-allocation-hashing-0.10.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/command_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/tasks_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-ivy_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scripted-plugin_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/collections_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/logic_2.12-1.4.9.jar diff --git a/scala/project/target/streams/runtime/fullClasspath/_global/streams/export b/scala/project/target/streams/runtime/fullClasspath/_global/streams/export new file mode 100644 index 00000000..e108aa3f --- /dev/null +++ b/scala/project/target/streams/runtime/fullClasspath/_global/streams/export @@ -0,0 +1 @@ +/Users/ricardo.portilla/Downloads/tempo/scala/project/target/scala-2.12/sbt-1.0/classes:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-compiler.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-reflect.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-xml_2.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-relation_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-interface-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist-core-assembly-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbt-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-jawn-parser_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-api-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-3.14.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-position_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/task-system_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-core_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-cache_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-reader-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/slf4j-api-1.7.26.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/testing_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbinary_2.12-0.5.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/error_prone_annotations-2.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-interface-1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/launcher-interface-1.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-agent-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/config-1.3.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/io_2.12-1.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-lm-integration_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-core_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-reflect-2.12.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-slf4j-impl-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-collection-compat_2.12-2.3.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-interface-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/checker-qual-3.4.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-core-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/caffeine-2.8.5.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ssl-config-core_2.12-0.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/completion_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classpath_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jna-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-tracking_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jansi-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-parser-combinators_2.12-1.1.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-bridge_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-xml_2.12-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jansi-2.1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-platform-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-urlconnection-3.7.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/reactive-streams-1.0.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/disruptor-3.4.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-builtins-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-apiinfo_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/lm-coursier-shaded_2.12-2.0.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-murmurhash_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/template-resolver-0.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/file-tree-views-2.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ipcsocket-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/protocol_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/run_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-okhttp_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-logging_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-scalajson_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-control_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jsch-0.1.54.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/core-macros_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classfile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-style-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okio-1.17.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-core_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/actions_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main-settings_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ivy-2.3.0-sbt-fbc4f586aeeb1591710b14eb4f41b94880dcd745.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zero-allocation-hashing-0.10.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/command_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/tasks_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-ivy_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scripted-plugin_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/collections_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/logic_2.12-1.4.9.jar diff --git a/scala/project/target/streams/runtime/internalDependencyClasspath/_global/streams/export b/scala/project/target/streams/runtime/internalDependencyClasspath/_global/streams/export new file mode 100644 index 00000000..c1a6fded --- /dev/null +++ b/scala/project/target/streams/runtime/internalDependencyClasspath/_global/streams/export @@ -0,0 +1 @@ +/Users/ricardo.portilla/Downloads/tempo/scala/project/target/scala-2.12/sbt-1.0/classes diff --git a/scala/project/target/streams/runtime/internalDependencyClasspath/_global/streams/out b/scala/project/target/streams/runtime/internalDependencyClasspath/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/runtime/managedClasspath/_global/streams/export b/scala/project/target/streams/runtime/managedClasspath/_global/streams/export new file mode 100644 index 00000000..963b794c --- /dev/null +++ b/scala/project/target/streams/runtime/managedClasspath/_global/streams/export @@ -0,0 +1 @@ +/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-compiler.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-reflect.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-xml_2.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-relation_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-interface-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist-core-assembly-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbt-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-jawn-parser_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-api-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-3.14.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-position_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/task-system_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-core_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-cache_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-reader-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/slf4j-api-1.7.26.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/testing_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sbinary_2.12-0.5.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/error_prone_annotations-2.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-interface-1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/launcher-interface-1.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/test-agent-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/config-1.3.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/io_2.12-1.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-lm-integration_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-core_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-reflect-2.12.12.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-slf4j-impl-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-collection-compat_2.12-2.3.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-interface-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/checker-qual-3.4.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/log4j-core-2.11.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/caffeine-2.8.5.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ssl-config-core_2.12-0.4.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/completion_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classpath_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-2.14.7-sbt-a1b0ffbb8f64bb820f4f84a0c07a0c0964507493.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jna-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-persist_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-tracking_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-terminal-jansi-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-parser-combinators_2.12-1.1.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/compiler-bridge_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scala-xml_2.12-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jansi-2.1.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-platform-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okhttp-urlconnection-3.7.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/reactive-streams-1.0.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/disruptor-3.4.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-builtins-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-apiinfo_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/lm-coursier-shaded_2.12-2.0.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jna-5.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-murmurhash_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/template-resolver-0.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/file-tree-views-2.1.6.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ipcsocket-1.3.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile-core_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/protocol_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/run_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/gigahorse-okhttp_2.12-0.5.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-logging_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/sjson-new-scalajson_2.12-0.9.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/util-control_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jsch-0.1.54.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/core-macros_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-classfile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/jline-style-3.19.0.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/okio-1.17.2.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-core_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/actions_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/main-settings_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/ivy-2.3.0-sbt-fbc4f586aeeb1591710b14eb4f41b94880dcd745.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zero-allocation-hashing-0.10.1.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/command_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/tasks_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/zinc-compile_2.12-1.4.4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/librarymanagement-ivy_2.12-1.4.3.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/scripted-plugin_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/collections_2.12-1.4.9.jar:/Users/ricardo.portilla/.sbt/boot/scala-2.12.12/org.scala-sbt/sbt/1.4.9/logic_2.12-1.4.9.jar diff --git a/scala/project/target/streams/runtime/unmanagedClasspath/_global/streams/export b/scala/project/target/streams/runtime/unmanagedClasspath/_global/streams/export new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/scala/project/target/streams/runtime/unmanagedClasspath/_global/streams/export @@ -0,0 +1 @@ + diff --git a/scala/project/target/streams/runtime/unmanagedClasspath/_global/streams/out b/scala/project/target/streams/runtime/unmanagedClasspath/_global/streams/out new file mode 100644 index 00000000..e69de29b diff --git a/scala/project/target/streams/runtime/unmanagedJars/_global/streams/export b/scala/project/target/streams/runtime/unmanagedJars/_global/streams/export new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/scala/project/target/streams/runtime/unmanagedJars/_global/streams/export @@ -0,0 +1 @@ + diff --git a/scala/target/scala-2.12/scala_2.12-0.1.0-SNAPSHOT.jar b/scala/target/scala-2.12/scala_2.12-0.1.0-SNAPSHOT.jar new file mode 100644 index 00000000..209ec82a Binary files /dev/null and b/scala/target/scala-2.12/scala_2.12-0.1.0-SNAPSHOT.jar differ diff --git a/scala/target/scala-2.12/update/update_cache_2.12/inputs b/scala/target/scala-2.12/update/update_cache_2.12/inputs new file mode 100644 index 00000000..c1d2bbeb --- /dev/null +++ b/scala/target/scala-2.12/update/update_cache_2.12/inputs @@ -0,0 +1 @@ +-1877598186 \ No newline at end of file diff --git a/scala/target/scala-2.12/update/update_cache_2.12/output b/scala/target/scala-2.12/update/update_cache_2.12/output new file mode 100644 index 00000000..edc7601d --- /dev/null +++ b/scala/target/scala-2.12/update/update_cache_2.12/output @@ -0,0 +1 @@ +{"cachedDescriptor":".","configurations":[{"configuration":{"name":"compile"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"compile-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"docs"},"modules":[],"details":[]},{"configuration":{"name":"optional"},"modules":[],"details":[]},{"configuration":{"name":"plugin"},"modules":[],"details":[]},{"configuration":{"name":"pom"},"modules":[],"details":[]},{"configuration":{"name":"provided"},"modules":[],"details":[]},{"configuration":{"name":"runtime"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"runtime-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"scala-tool"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-compiler","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-compiler","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-compiler.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-compiler","revision":"2.12.12","configurations":"optional","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-compiler","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-compiler.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"optional","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-reflect","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-reflect","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-reflect.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang.modules","name":"scala-xml_2.12","revision":"1.0.6","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-lang","name":"*","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-xml_2.12","type":"bundle","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"http://www.scala-lang.org/","extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["BSD 3-clause","http://opensource.org/licenses/BSD-3-Clause"]],"callers":[]},{"module":{"organization":"jline","name":"jline","revision":"2.14.6","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"jline","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.jar"]],"missingArtifacts":[],"evicted":false,"extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["The BSD License","http://www.opensource.org/licenses/bsd-license.php"]],"callers":[]},{"module":{"organization":"org.fusesource.jansi","name":"jansi","revision":"1.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"jansi","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.12/jansi-1.12.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.12/jansi-1.12.jar"]],"missingArtifacts":[],"evicted":false,"extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[],"callers":[]}],"details":[]},{"configuration":{"name":"sources"},"modules":[],"details":[]},{"configuration":{"name":"test"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"test-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.12","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/ricardo.portilla/.sbt/boot/scala-2.12.12/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.12/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]}],"stats":{"resolveTime":-1,"downloadTime":-1,"downloadSize":-1,"cached":true},"stamps":{}} \ No newline at end of file