From 28f92734937f73357f0843ab8b8fd03e88fff117 Mon Sep 17 00:00:00 2001 From: Steph Merritt Date: Tue, 13 Feb 2024 16:16:00 +0000 Subject: [PATCH 1/8] Initial data classes. --- src/adler/AdlerPlanetoid.py | 71 ++++++++++++++++++++++++ src/adler/DataSchema.py | 106 ++++++++++++++++++++++++++++++++++++ 2 files changed, 177 insertions(+) create mode 100644 src/adler/AdlerPlanetoid.py create mode 100644 src/adler/DataSchema.py diff --git a/src/adler/AdlerPlanetoid.py b/src/adler/AdlerPlanetoid.py new file mode 100644 index 0000000..2d531be --- /dev/null +++ b/src/adler/AdlerPlanetoid.py @@ -0,0 +1,71 @@ +from lsst.rsp import get_tap_service, retrieve_query +from DataSchema import Observations, MPCORB, SSObject + +class AdlerPlanetoid: + + def __init__(self, ssObjectId, sql_filename=None): + + self.ssObjectId = ssObjectId + self.sql_filename = sql_filename + # can also include date ranges at some point + + # can draw from a local SQL database + if not sql_filename: + self.service = get_tap_service("ssotap") + else: + self.service = None + + # this creates the AdlerPlanetoid.Observations, AdlerPlanetoid.MPCORB and + # AdlerPlanetoid.SSObject objects. + self.populate_observations() + self.populate_MPCORB() + self.populate_SSObject() + + + def populate_observations(self): + + observations_sql_query = f""" + SELECT + ssObject.ssObjectId, mag, magErr, band, midpointMjdTai as mjd, ra, dec, phaseAngle, + topocentricDist, heliocentricDist + FROM + dp03_catalogs_10yr.ssObject + JOIN dp03_catalogs_10yr.diaSource ON dp03_catalogs_10yr.ssObject.ssObjectId = dp03_catalogs_10yr.diaSource.ssObjectId + JOIN dp03_catalogs_10yr.ssSource ON dp03_catalogs_10yr.diaSource.diaSourceId = dp03_catalogs_10yr.ssSource.diaSourceId + WHERE + ssObject.ssObjectId = {self.ssObjectId} and band='r' + """ + + self.Observations = Observations(self.ssObjectId, observations_sql_query, self.service, self.sql_filename) + + + def populate_MPCORB(self): + + MPCORB_sql_query = f""" + SELECT + ssObjectId, mpcDesignation, mpcNumber, mpcH, mpcG, epoch, peri, node, incl, e, n, q, + uncertaintyParameter, flags + FROM + dp03_catalogs_10yr.MPCORB + WHERE + ssObjectId = {self.ssObjectId} + """ + + self.MPCORB = MPCORB(self.ssObjectId, MPCORB_sql_query, self.service, self.sql_filename) + + + def populate_SSObject(self): + + SSObject_sql_query = f""" + SELECT + discoverySubmissionDate, firstObservationDate, arc, numObs, + r_H, r_G12, r_Herr, r_G12err, r_nData, + maxExtendedness, minExtendedness, medianExtendedness + FROM + dp03_catalogs_10yr.SSObject + WHERE + ssObjectId = {self.ssObjectId} + """ + + self.SSObject = SSObject(self.ssObjectId, SSObject_sql_query, self.service, self.sql_filename) + \ No newline at end of file diff --git a/src/adler/DataSchema.py b/src/adler/DataSchema.py new file mode 100644 index 0000000..52d07a3 --- /dev/null +++ b/src/adler/DataSchema.py @@ -0,0 +1,106 @@ +import numpy as np + +class DataSchema(): + """Parent class for Observations (a join of DiaSource and SSSource), MPCORB + and SSObject data classes. + """ + def __init__(self, ssObjectId, sql_query, service, sql_filename=None): + self.ssObjectId = ssObjectId + self.sql_query = sql_query + self.service = service + + if not sql_filename: + self.data_table = self.get_RSP_table(self.sql_query) + else: + self.data_table = self.get_SQL_table(self.sql_query) + + + def get_RSP_table(self, sql_query): + rsp_table = self.service.search(sql_query).to_table() + return rsp_table + + + def get_SQL_table(self, sql_query, testing_filename): + pass + + # should be one function to get whatever from the table and type accordingly + def get_array_from_table(self, column_name): + return np.array(self.data_table[column_name]) + + + def get_string_from_table(self, column_name): + return str(self.data_table[column_name][0]) + + + def get_float_from_table(self, column_name): + return float(self.data_table[column_name][0]) + + + def get_int_from_table(self, column_name): + return int(self.data_table[column_name][0]) + + +class Observations(DataSchema): + """This is a SQL join of DiaSource and SSSource which contains all of the + observations of the object. + """ + def __init__(self, ssObjectId, observations_query, service, sql_filename=None): + super().__init__(ssObjectId, observations_query, service, sql_filename) + + # This populates each of the variables with a numpy array of the specific column. + # This should probably be moved to a constructor class method. + self.mag = self.get_array_from_table("mag") + self.magErr = self.get_array_from_table("magErr") + self.mjd = self.get_array_from_table("mjd") + self.ra = self.get_array_from_table("ra") + self.dec = self.get_array_from_table("dec") + self.phaseAngle = self.get_array_from_table("phaseAngle") + self.topocentricDist = self.get_array_from_table("topocentricDist") + self.heliocentricDist = self.get_array_from_table("heliocentricDist") + + self.reduced_mag = self.mag - 5 * np.log10(self.topocentricDist * self.heliocentricDist) + + +class MPCORB(DataSchema): + """Grabs information from MPCORB. + """ + + def __init__(self, ssObjectId, observations_query, service, sql_filename=None): + super().__init__(ssObjectId, observations_query, service, sql_filename) + + self.mpcDesignation = self.get_string_from_table("mpcDesignation") + self.mpcNumber = self.get_string_from_table("mpcNumber") + self.mpcH = self.get_float_from_table("mpcH") + self.mpcG = self.get_float_from_table("mpcH") + self.epoch = self.get_float_from_table("epoch") + self.peri = self.get_float_from_table("peri") + self.node = self.get_float_from_table("node") + self.incl = self.get_float_from_table("incl") + self.e = self.get_float_from_table("e") + self.n = self.get_float_from_table("n") + self.q = self.get_float_from_table("q") + self.uncertaintyParameter = self.get_string_from_table("uncertaintyParameter") + self.flags = self.get_string_from_table("flags") + + # no mean anomaly, no a in MPCORB table + + +class SSObject(DataSchema): + """Grabs information from MPCORB. + """ + + def __init__(self, ssObjectId, observations_query, service, sql_filename=None): + super().__init__(ssObjectId, observations_query, service, sql_filename) + + self.discoverySubmissionDate = self.get_float_from_table("discoverySubmissionDate") + self.firstObservationDate = self.get_float_from_table("firstObservationDate") + self.arc = self.get_float_from_table("arc") + self.numObs = self.get_int_from_table("numObs") + self.r_H = self.get_float_from_table("r_H") + self.r_G12 = self.get_float_from_table("r_G12") + self.r_Herr = self.get_float_from_table("r_Herr") + self.r_G12Err = self.get_float_from_table("r_G12err") + self.r_nData = self.get_int_from_table("r_nData") + self.maxExtendedness = self.get_float_from_table("maxExtendedness") + self.minExtendedness = self.get_float_from_table("minExtendedness") + self.medianExtendedness = self.get_float_from_table("medianExtendedness") \ No newline at end of file From 14bf3349928bf0402315d3bf8a99fe78aa80cae3 Mon Sep 17 00:00:00 2001 From: Steph Merritt Date: Tue, 13 Feb 2024 16:18:39 +0000 Subject: [PATCH 2/8] Initial data class commit. --- src/adler/AdlerPlanetoid.py | 24 +++++++++--------------- src/adler/DataSchema.py | 28 ++++++++++++---------------- 2 files changed, 21 insertions(+), 31 deletions(-) diff --git a/src/adler/AdlerPlanetoid.py b/src/adler/AdlerPlanetoid.py index 2d531be..b7c8b41 100644 --- a/src/adler/AdlerPlanetoid.py +++ b/src/adler/AdlerPlanetoid.py @@ -1,10 +1,9 @@ from lsst.rsp import get_tap_service, retrieve_query from DataSchema import Observations, MPCORB, SSObject -class AdlerPlanetoid: +class AdlerPlanetoid: def __init__(self, ssObjectId, sql_filename=None): - self.ssObjectId = ssObjectId self.sql_filename = sql_filename # can also include date ranges at some point @@ -21,9 +20,7 @@ def __init__(self, ssObjectId, sql_filename=None): self.populate_MPCORB() self.populate_SSObject() - def populate_observations(self): - observations_sql_query = f""" SELECT ssObject.ssObjectId, mag, magErr, band, midpointMjdTai as mjd, ra, dec, phaseAngle, @@ -35,12 +32,12 @@ def populate_observations(self): WHERE ssObject.ssObjectId = {self.ssObjectId} and band='r' """ - - self.Observations = Observations(self.ssObjectId, observations_sql_query, self.service, self.sql_filename) - - + + self.Observations = Observations( + self.ssObjectId, observations_sql_query, self.service, self.sql_filename + ) + def populate_MPCORB(self): - MPCORB_sql_query = f""" SELECT ssObjectId, mpcDesignation, mpcNumber, mpcH, mpcG, epoch, peri, node, incl, e, n, q, @@ -50,12 +47,10 @@ def populate_MPCORB(self): WHERE ssObjectId = {self.ssObjectId} """ - + self.MPCORB = MPCORB(self.ssObjectId, MPCORB_sql_query, self.service, self.sql_filename) - - + def populate_SSObject(self): - SSObject_sql_query = f""" SELECT discoverySubmissionDate, firstObservationDate, arc, numObs, @@ -66,6 +61,5 @@ def populate_SSObject(self): WHERE ssObjectId = {self.ssObjectId} """ - + self.SSObject = SSObject(self.ssObjectId, SSObject_sql_query, self.service, self.sql_filename) - \ No newline at end of file diff --git a/src/adler/DataSchema.py b/src/adler/DataSchema.py index 52d07a3..7d487c3 100644 --- a/src/adler/DataSchema.py +++ b/src/adler/DataSchema.py @@ -1,9 +1,11 @@ import numpy as np -class DataSchema(): + +class DataSchema: """Parent class for Observations (a join of DiaSource and SSSource), MPCORB and SSObject data classes. """ + def __init__(self, ssObjectId, sql_query, service, sql_filename=None): self.ssObjectId = ssObjectId self.sql_query = sql_query @@ -14,28 +16,23 @@ def __init__(self, ssObjectId, sql_query, service, sql_filename=None): else: self.data_table = self.get_SQL_table(self.sql_query) - def get_RSP_table(self, sql_query): rsp_table = self.service.search(sql_query).to_table() return rsp_table - def get_SQL_table(self, sql_query, testing_filename): pass # should be one function to get whatever from the table and type accordingly def get_array_from_table(self, column_name): - return np.array(self.data_table[column_name]) + return np.array(self.data_table[column_name]) - def get_string_from_table(self, column_name): return str(self.data_table[column_name][0]) - def get_float_from_table(self, column_name): return float(self.data_table[column_name][0]) - def get_int_from_table(self, column_name): return int(self.data_table[column_name][0]) @@ -44,8 +41,9 @@ class Observations(DataSchema): """This is a SQL join of DiaSource and SSSource which contains all of the observations of the object. """ + def __init__(self, ssObjectId, observations_query, service, sql_filename=None): - super().__init__(ssObjectId, observations_query, service, sql_filename) + super().__init__(ssObjectId, observations_query, service, sql_filename) # This populates each of the variables with a numpy array of the specific column. # This should probably be moved to a constructor class method. @@ -57,14 +55,13 @@ def __init__(self, ssObjectId, observations_query, service, sql_filename=None): self.phaseAngle = self.get_array_from_table("phaseAngle") self.topocentricDist = self.get_array_from_table("topocentricDist") self.heliocentricDist = self.get_array_from_table("heliocentricDist") - + self.reduced_mag = self.mag - 5 * np.log10(self.topocentricDist * self.heliocentricDist) class MPCORB(DataSchema): - """Grabs information from MPCORB. - """ - + """Grabs information from MPCORB.""" + def __init__(self, ssObjectId, observations_query, service, sql_filename=None): super().__init__(ssObjectId, observations_query, service, sql_filename) @@ -86,9 +83,8 @@ def __init__(self, ssObjectId, observations_query, service, sql_filename=None): class SSObject(DataSchema): - """Grabs information from MPCORB. - """ - + """Grabs information from MPCORB.""" + def __init__(self, ssObjectId, observations_query, service, sql_filename=None): super().__init__(ssObjectId, observations_query, service, sql_filename) @@ -103,4 +99,4 @@ def __init__(self, ssObjectId, observations_query, service, sql_filename=None): self.r_nData = self.get_int_from_table("r_nData") self.maxExtendedness = self.get_float_from_table("maxExtendedness") self.minExtendedness = self.get_float_from_table("minExtendedness") - self.medianExtendedness = self.get_float_from_table("medianExtendedness") \ No newline at end of file + self.medianExtendedness = self.get_float_from_table("medianExtendedness") From ced2831105f221aecf4f8831c4b9a412c6295dc0 Mon Sep 17 00:00:00 2001 From: Steph Merritt Date: Fri, 16 Feb 2024 13:33:38 +0000 Subject: [PATCH 3/8] Adding file structure and basic adler.py. --- pyproject.toml | 1 + src/adler/.DS_Store | Bin 0 -> 6148 bytes src/adler/__init__.py | 5 ++-- src/adler/adler.py | 26 ++++++++++++++++++ src/adler/dataclasses/.DS_Store | Bin 0 -> 6148 bytes src/adler/{ => dataclasses}/AdlerPlanetoid.py | 10 +++++-- src/adler/{ => dataclasses}/DataSchema.py | 0 src/adler/example_module.py | 23 ---------------- src/adler/science/DummyScience.py | 3 ++ tests/adler/.DS_Store | Bin 0 -> 6148 bytes tests/adler/conftest.py | 0 tests/adler/dataclasses/dummy_test.py | 5 ++++ tests/adler/test_example_module.py | 13 --------- 13 files changed, 45 insertions(+), 41 deletions(-) create mode 100644 src/adler/.DS_Store create mode 100644 src/adler/adler.py create mode 100644 src/adler/dataclasses/.DS_Store rename src/adler/{ => dataclasses}/AdlerPlanetoid.py (88%) rename src/adler/{ => dataclasses}/DataSchema.py (100%) delete mode 100644 src/adler/example_module.py create mode 100644 src/adler/science/DummyScience.py create mode 100644 tests/adler/.DS_Store delete mode 100644 tests/adler/conftest.py create mode 100644 tests/adler/dataclasses/dummy_test.py delete mode 100644 tests/adler/test_example_module.py diff --git a/pyproject.toml b/pyproject.toml index d0841eb..471bc70 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,6 +15,7 @@ classifiers = [ dynamic = ["version"] dependencies = [ "ipykernel", # Support for Jupyter notebooks + "numpy" ] [project.urls] diff --git a/src/adler/.DS_Store b/src/adler/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..8006c226cf126a0cfc8b700ec9f05226e2f23228 GIT binary patch literal 6148 zcmeHKF;2r!47E!og1U5M{8#7=LKRNX3qX?!kP=d_H~L)UZ*61>%1MA`Lz`1Ha0^C!}{;5C8xG literal 0 HcmV?d00001 diff --git a/src/adler/__init__.py b/src/adler/__init__.py index b564b85..25b7585 100644 --- a/src/adler/__init__.py +++ b/src/adler/__init__.py @@ -1,3 +1,2 @@ -from .example_module import greetings, meaning - -__all__ = ["greetings", "meaning"] +from . import dataclasses +from . import science diff --git a/src/adler/adler.py b/src/adler/adler.py new file mode 100644 index 0000000..334d2b3 --- /dev/null +++ b/src/adler/adler.py @@ -0,0 +1,26 @@ +import argparse + +from adler.dataclasses.AdlerPlanetoid import AdlerPlanetoid + + +def runAdler(args): + planetoid = AdlerPlanetoid(args.ssoid) + + planetoid.do_pretend_science() + + +def main(): + parser = argparse.ArgumentParser(description="Runs Adler for a select planetoid and given user input.") + + parser.add_argument("-s", "--ssoid", help="SSObject ID of planetoid.", type="str", required=True) + + # can add arguments to specify a date range etc later + # alternatively we may start using a config file + + args = parser.parse_args() + + runAdler(args) + + +if __name__ == "__main__": + main() diff --git a/src/adler/dataclasses/.DS_Store b/src/adler/dataclasses/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..231a8b960b29d5ab401e39de5d11814c00073c85 GIT binary patch literal 6148 zcmeHKO-sW-5Pe&FsCcP2kNE`#|3NJACL$C)8*QMKsv%7dz2&F-W@iY7DD)swWTwo% z-TBzvybYNyfUsy+SHK*=j4C)eW%G@QUvwlBvj~PbM~!=IQQ#frDB2Cj$bg*PIj*td zxs~{Oehogbq5TpS_EqzI+wPj0(K(jbV~2+EZ%FaTxGh@tOIlO<3;GK79ypdc#j5cY z*75Dw#9Z;!T%+MH<(pG;rdN7iIF_8E-<9Oov=42E?)=Vne!z1c;}Q9uoB?OR8TfSu zShGcDXNulB1I~am&@&+4hlDDa8Fq^C)4?WQ0f*(R6)+W>^s))pOihT+@u@o~_O7R6X3hjw>h?!xhNDIaP2t*pZ JaR&aBflsb)LEHcU literal 0 HcmV?d00001 diff --git a/src/adler/AdlerPlanetoid.py b/src/adler/dataclasses/AdlerPlanetoid.py similarity index 88% rename from src/adler/AdlerPlanetoid.py rename to src/adler/dataclasses/AdlerPlanetoid.py index b7c8b41..c04cd62 100644 --- a/src/adler/AdlerPlanetoid.py +++ b/src/adler/dataclasses/AdlerPlanetoid.py @@ -1,5 +1,6 @@ -from lsst.rsp import get_tap_service, retrieve_query -from DataSchema import Observations, MPCORB, SSObject +from lsst.rsp import get_tap_service +from adler.dataclasses.DataSchema import Observations, MPCORB, SSObject +from adler.science.DummyScience import DummyScience class AdlerPlanetoid: @@ -63,3 +64,8 @@ def populate_SSObject(self): """ self.SSObject = SSObject(self.ssObjectId, SSObject_sql_query, self.service, self.sql_filename) + + def do_pretend_science(self): + self.DummyScienceResult = DummyScience().science_result + + print(self.DummyScienceResult) diff --git a/src/adler/DataSchema.py b/src/adler/dataclasses/DataSchema.py similarity index 100% rename from src/adler/DataSchema.py rename to src/adler/dataclasses/DataSchema.py diff --git a/src/adler/example_module.py b/src/adler/example_module.py deleted file mode 100644 index f76e837..0000000 --- a/src/adler/example_module.py +++ /dev/null @@ -1,23 +0,0 @@ -"""An example module containing simplistic functions.""" - - -def greetings() -> str: - """A friendly greeting for a future friend. - - Returns - ------- - str - A typical greeting from a software engineer. - """ - return "Hello from LINCC-Frameworks!" - - -def meaning() -> int: - """The meaning of life, the universe, and everything. - - Returns - ------- - int - The meaning of life. - """ - return 42 diff --git a/src/adler/science/DummyScience.py b/src/adler/science/DummyScience.py new file mode 100644 index 0000000..d76be0d --- /dev/null +++ b/src/adler/science/DummyScience.py @@ -0,0 +1,3 @@ +class DummyScience: + def __init__(self): + self.science_result = "look, science!" diff --git a/tests/adler/.DS_Store b/tests/adler/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c8ea8e538bdde7a3f3f135f748f6538901471eeb GIT binary patch literal 6148 zcmeHKT~5O=40gtliuS+|F9-=KSJ(~0R8Fu9z!v_bmQIZE+`DiPo_OF^e2%TrsjUVt z6GHane2HVH$(O30iO5aYaY8gEq72G7I6~7QJkQ#afm(Rdr8O2*&<(BdyKQ-!;V&}4 zcQ>MlTYG^v?{8JyPiBj%TsF4d<5^aDJ};^{JhOOyc=GxFaoN9aS;b#?FCSXFIHol{ zVZV>i0&iL*Pj^(IA2E9F*!PZz=KkLX8(z=i?-K6of&P^<;hrvptY0f0l8lc3MF1jl&ApjZoH2I3?XD4|YE3@72R zd-V&7wV;HP)8fPFlbu#5Eu{WFJ@gvN!hW^jCIp?7is8$t_zao^cF!GPP^<-Ef!H5`M1wWPz+M^n E0@?>%`Tzg` literal 0 HcmV?d00001 diff --git a/tests/adler/conftest.py b/tests/adler/conftest.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/adler/dataclasses/dummy_test.py b/tests/adler/dataclasses/dummy_test.py new file mode 100644 index 0000000..154efa1 --- /dev/null +++ b/tests/adler/dataclasses/dummy_test.py @@ -0,0 +1,5 @@ +# placeholder test to ensure tests work + + +def test_dummytest(): + print("test complete") diff --git a/tests/adler/test_example_module.py b/tests/adler/test_example_module.py deleted file mode 100644 index 09bfb59..0000000 --- a/tests/adler/test_example_module.py +++ /dev/null @@ -1,13 +0,0 @@ -from adler import example_module - - -def test_greetings() -> None: - """Verify the output of the `greetings` function""" - output = example_module.greetings() - assert output == "Hello from LINCC-Frameworks!" - - -def test_meaning() -> None: - """Verify the output of the `meaning` function""" - output = example_module.meaning() - assert output == 42 From b745384ea66f1c3e61b0c72065727a9a2de233c9 Mon Sep 17 00:00:00 2001 From: Steph Merritt Date: Fri, 16 Feb 2024 14:02:55 +0000 Subject: [PATCH 4/8] Updating pyproject.toml. --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 471bc70..0d043ce 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,8 @@ classifiers = [ dynamic = ["version"] dependencies = [ "ipykernel", # Support for Jupyter notebooks - "numpy" + "numpy", + "lsst-rsp" ] [project.urls] From 1e77e1d6051de880ea7487effdde2ed89fd67008 Mon Sep 17 00:00:00 2001 From: Steph Merritt Date: Fri, 16 Feb 2024 14:35:44 +0000 Subject: [PATCH 5/8] Updating pyproject.toml again. --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 0d043ce..a3a75ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,6 +40,9 @@ dev = [ "ipython", # Also used in building notebooks into Sphinx ] +[project.scripts] +adler = "adler.adler:main" + [build-system] requires = [ "setuptools>=62", # Used to build and package the Python project From 2adaa8d4a5c7674785e73226f1f027a26a24e356 Mon Sep 17 00:00:00 2001 From: Steph Merritt Date: Fri, 16 Feb 2024 14:39:16 +0000 Subject: [PATCH 6/8] Fixing typo. --- src/adler/adler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/adler/adler.py b/src/adler/adler.py index 334d2b3..2d390a1 100644 --- a/src/adler/adler.py +++ b/src/adler/adler.py @@ -12,7 +12,7 @@ def runAdler(args): def main(): parser = argparse.ArgumentParser(description="Runs Adler for a select planetoid and given user input.") - parser.add_argument("-s", "--ssoid", help="SSObject ID of planetoid.", type="str", required=True) + parser.add_argument("-s", "--ssoid", help="SSObject ID of planetoid.", type=str, required=True) # can add arguments to specify a date range etc later # alternatively we may start using a config file From 5f041d5ed9a5bada8491e7bd3144cf6bd8a7044b Mon Sep 17 00:00:00 2001 From: Steph Merritt Date: Tue, 20 Feb 2024 12:20:39 +0000 Subject: [PATCH 7/8] Removing DS_Store, updating gitignore. --- .gitignore | 2 ++ tests/adler/.DS_Store | Bin 6148 -> 0 bytes 2 files changed, 2 insertions(+) delete mode 100644 tests/adler/.DS_Store diff --git a/.gitignore b/.gitignore index 92be978..ea13164 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +**/.DS_Store + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/tests/adler/.DS_Store b/tests/adler/.DS_Store deleted file mode 100644 index c8ea8e538bdde7a3f3f135f748f6538901471eeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKT~5O=40gtliuS+|F9-=KSJ(~0R8Fu9z!v_bmQIZE+`DiPo_OF^e2%TrsjUVt z6GHane2HVH$(O30iO5aYaY8gEq72G7I6~7QJkQ#afm(Rdr8O2*&<(BdyKQ-!;V&}4 zcQ>MlTYG^v?{8JyPiBj%TsF4d<5^aDJ};^{JhOOyc=GxFaoN9aS;b#?FCSXFIHol{ zVZV>i0&iL*Pj^(IA2E9F*!PZz=KkLX8(z=i?-K6of&P^<;hrvptY0f0l8lc3MF1jl&ApjZoH2I3?XD4|YE3@72R zd-V&7wV;HP)8fPFlbu#5Eu{WFJ@gvN!hW^jCIp?7is8$t_zao^cF!GPP^<-Ef!H5`M1wWPz+M^n E0@?>%`Tzg` From f5879d23af8a552b28cccd2f9d71d4e264116d0f Mon Sep 17 00:00:00 2001 From: Steph Merritt Date: Tue, 20 Feb 2024 12:26:11 +0000 Subject: [PATCH 8/8] Removing more rogue .DS_Store files. --- src/adler/.DS_Store | Bin 6148 -> 0 bytes src/adler/dataclasses/.DS_Store | Bin 6148 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/adler/.DS_Store delete mode 100644 src/adler/dataclasses/.DS_Store diff --git a/src/adler/.DS_Store b/src/adler/.DS_Store deleted file mode 100644 index 8006c226cf126a0cfc8b700ec9f05226e2f23228..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKF;2r!47E!og1U5M{8#7=LKRNX3qX?!kP=d_H~L)UZ*61>%1MA`Lz`1Ha0^C!}{;5C8xG diff --git a/src/adler/dataclasses/.DS_Store b/src/adler/dataclasses/.DS_Store deleted file mode 100644 index 231a8b960b29d5ab401e39de5d11814c00073c85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO-sW-5Pe&FsCcP2kNE`#|3NJACL$C)8*QMKsv%7dz2&F-W@iY7DD)swWTwo% z-TBzvybYNyfUsy+SHK*=j4C)eW%G@QUvwlBvj~PbM~!=IQQ#frDB2Cj$bg*PIj*td zxs~{Oehogbq5TpS_EqzI+wPj0(K(jbV~2+EZ%FaTxGh@tOIlO<3;GK79ypdc#j5cY z*75Dw#9Z;!T%+MH<(pG;rdN7iIF_8E-<9Oov=42E?)=Vne!z1c;}Q9uoB?OR8TfSu zShGcDXNulB1I~am&@&+4hlDDa8Fq^C)4?WQ0f*(R6)+W>^s))pOihT+@u@o~_O7R6X3hjw>h?!xhNDIaP2t*pZ JaR&aBflsb)LEHcU