Compare commits
9 Commits
full<-depl
...
main
Author | SHA1 | Date | |
---|---|---|---|
ae653f30ab | |||
90be24d021 | |||
1c2af82980 | |||
d5324377fd | |||
441f4237a5 | |||
b249da8b77 | |||
2cd91859e5 | |||
99f44adfc9 | |||
0f0aba676b |
@ -1,4 +1,5 @@
|
||||
{
|
||||
"editor.default_syntax" : "python",
|
||||
"workspace.art_style" : 0,
|
||||
"workspace.color" : 2,
|
||||
"workspace.name" : "jwst-plotter"
|
||||
|
9
.nova/Publishing/Phlaym.json
Normal file
9
.nova/Publishing/Phlaym.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"identifier" : "65C0B698-D114-41B3-8F58-13D74F7D3E93",
|
||||
"ignoredFilePatterns" : [
|
||||
"data.csv"
|
||||
],
|
||||
"remotePath" : "\/home\/phlaym\/jwst-plotter",
|
||||
"server" : "Phlaym",
|
||||
"usesPublishing" : true
|
||||
}
|
@ -6,5 +6,5 @@
|
||||
}
|
||||
},
|
||||
"identifier" : "EADBCF2F-F2FC-418C-9C08-EBAE9F98C8BD",
|
||||
"openLogOnRun" : "fail"
|
||||
"openLogOnRun" : "start"
|
||||
}
|
||||
|
12
README.md
12
README.md
@ -1,5 +1,13 @@
|
||||
Reads and plots the current teperatures of the James Webb Space Telescope.
|
||||
Reads and plots the current temperatures of the James Webb Space Telescope.
|
||||
|
||||
`load.py` loads the same source that [Where is Webb](https://webb.nasa.gov/content/webbLaunch/whereIsWebb.html?units=metric) uses and saves it to a CSV file.
|
||||
|
||||
`graph.py` reads that CSV file and plots the data
|
||||
`graph.py` reads that CSV file and plots the data.
|
||||
|
||||
A current graph can be found [here](https://phlaym.net/jwst/jwst_tempertature.png):
|
||||
![https://phlaym.net/jwst/jwst_tempertature.png](https://phlaym.net/jwst/jwst_tempertature.png)
|
||||
|
||||
with the corresponding dataset at: [https://phlaym.net/jwst/data.csv](https://phlaym.net/jwst/data.csv).
|
||||
|
||||
Data is currently updated every 4 hours, but I'm filtering it before generating the graph: If the temperatures don't change for a few while, keep only the first
|
||||
and last of these points.
|
||||
|
126
graph.py
126
graph.py
@ -5,11 +5,49 @@ import datetime
|
||||
import pandas as pd
|
||||
from matplotlib import pyplot as plt
|
||||
import matplotlib.dates as md
|
||||
from screeninfo import get_monitors
|
||||
from screeninfo.common import ScreenInfoError
|
||||
|
||||
SHOW_DEPLOYMENTS = True
|
||||
FILTER_DEPLOYMENTS = True
|
||||
|
||||
plt.rcParams["figure.autolayout"] = True
|
||||
plt.rcParams['figure.figsize'] = (16, 10)
|
||||
|
||||
data_frame = pd.read_csv("data.csv", delimiter=';')
|
||||
|
||||
# Filter rows, so that only the following will be kept:
|
||||
# First and last rows,
|
||||
# rows which have a different temperature than the one before,
|
||||
# and rows which have a different temperature than the one after.
|
||||
#
|
||||
# Basically: If the temperatures don't change for a few rows, keep only the first
|
||||
# and last of that run
|
||||
last_row = None
|
||||
timestamps_to_keep = []
|
||||
for row in data_frame.iterrows():
|
||||
# row is actually a tuple with index at 0 and the row data at 1. We care only about the row data
|
||||
row = row[1]
|
||||
# First row: Always keep it
|
||||
if last_row is None:
|
||||
last_row = row
|
||||
timestamps_to_keep.append(row['timestamp'])
|
||||
continue
|
||||
# Any temp changed?
|
||||
keep_row = (last_row['tempWarmSide1C'] != row['tempWarmSide1C'] or
|
||||
last_row['tempWarmSide2C'] != row['tempWarmSide2C'] or
|
||||
last_row['tempCoolSide1C'] != row['tempCoolSide1C'] or
|
||||
last_row['tempCoolSide2C'] != row['tempCoolSide2C'])
|
||||
# Keep this and the previous row
|
||||
if keep_row:
|
||||
timestamps_to_keep.append(last_row['timestamp'])
|
||||
timestamps_to_keep.append(row['timestamp'])
|
||||
last_row = row
|
||||
# Always keep the last row
|
||||
timestamps_to_keep.append(data_frame.iloc[-1:]['timestamp'])
|
||||
# Filter rows by the timestamps we just saved
|
||||
data_frame = data_frame[data_frame.timestamp.isin(timestamps_to_keep)]
|
||||
|
||||
# Subplot, to move legend next to plot
|
||||
# 1 row, 1 col, index: 1
|
||||
plt.subplot(1, 1, 1)
|
||||
@ -27,22 +65,96 @@ ax.xaxis.set_major_formatter(xfmt)
|
||||
ax.set_ylabel('Temperature [°C]')
|
||||
|
||||
# Data
|
||||
plt.plot(datenums, data_frame.tempWarmSide1C, label='Warm 1', color='orange', marker='x')
|
||||
plt.plot(
|
||||
datenums,
|
||||
data_frame.tempWarmSide1C,
|
||||
label='Sunshield UPS\nAverage Temperature (a)',
|
||||
color='orange',
|
||||
marker='x'
|
||||
)
|
||||
for i, j in zip(datenums, data_frame.tempWarmSide1C):
|
||||
ax.annotate(str(round(j, 2)), xy=(i, j), rotation=45)
|
||||
|
||||
plt.plot(datenums, data_frame.tempWarmSide2C, label='Warm 2', color='orangered', marker='x')
|
||||
plt.plot(
|
||||
datenums,
|
||||
data_frame.tempWarmSide2C,
|
||||
label='Spacecraft Equipment Panel\nAverage Temperature (b)',
|
||||
color='orangered',
|
||||
marker='x'
|
||||
)
|
||||
for i, j in zip(datenums, data_frame.tempWarmSide2C):
|
||||
ax.annotate(str(round(j, 2)), xy=(i, j), rotation=45)
|
||||
ax.annotate(str(round(j, 2)), xy=(i, j-30), rotation=300)
|
||||
|
||||
plt.plot(datenums, data_frame.tempCoolSide1C, label='Cool 1', color='blue', marker='x')
|
||||
plt.plot(
|
||||
datenums,
|
||||
data_frame.tempCoolSide1C,
|
||||
label='Primary Mirror\nAverage Temperature (c)',
|
||||
color='blue',
|
||||
marker='x')
|
||||
for i, j in zip(datenums, data_frame.tempCoolSide1C):
|
||||
ax.annotate(str(round(j, 2)), xy=(i, j), rotation=45)
|
||||
|
||||
plt.plot(datenums, data_frame.tempCoolSide2C, label='Cool 2', color='navy', marker='x')
|
||||
plt.plot(datenums, data_frame.tempCoolSide2C, label='Instrument Radiator\nTemperature', color='navy', marker='x')
|
||||
for i, j in zip(datenums, data_frame.tempCoolSide2C):
|
||||
ax.annotate(str(round(j, 2)), xy=(i, j), rotation=45)
|
||||
ax.annotate(str(round(j, 2)), xy=(i, j-30), rotation=300)
|
||||
|
||||
plt.axhline(y=-223, color='darkblue', linestyle=':', label='Operating temperature')
|
||||
plt.ylim(ymin=-273.15)
|
||||
|
||||
launch_date = datetime.datetime.fromisoformat('2021-12-25T12:20+00:00')
|
||||
deployment_names = [
|
||||
'Sunshield Pallet',
|
||||
'DTA Deployment',
|
||||
'Sunshield Covers Release',
|
||||
'Sunshield Mid-Boom',
|
||||
'Sunshield Layer Tensioning Ongoing',
|
||||
'Sunshield Tensioning Complete',
|
||||
'Secondary Mirror Deployment',
|
||||
'Aft Deployed Instrument Radiator',
|
||||
'Port Primary Mirror Wing',
|
||||
'WEBB IS FULLY DEPLOYED!',
|
||||
'Individual Mirror Segment Movements',
|
||||
'L2 Insertion Burn',
|
||||
'WEBB IS ORBITING L2'
|
||||
]
|
||||
|
||||
# deployment dates, based on "+ X days"
|
||||
deployment_dates = [md.date2num(launch_date + datetime.timedelta(days=x)) for x in [
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
26,
|
||||
29.5]
|
||||
]
|
||||
|
||||
latest_available_temp_date = max(datenums)
|
||||
earliest_available_temp_date = min(datenums)
|
||||
|
||||
deployments_data = zip(deployment_names, deployment_dates)
|
||||
filtered_deployments_data = (filter(lambda tup:
|
||||
tup[1] >= earliest_available_temp_date and
|
||||
tup[1] <= latest_available_temp_date, deployments_data)
|
||||
if FILTER_DEPLOYMENTS else deployments_data)
|
||||
|
||||
max_temp = max(max(data_frame.tempWarmSide1C), max(data_frame.tempWarmSide2C))
|
||||
|
||||
if SHOW_DEPLOYMENTS:
|
||||
for label, date in filtered_deployments_data:
|
||||
plt.axvline(x=date, color='gray', linestyle=':')
|
||||
plt.text(x=date, y=max_temp+30, s=label, rotation=25)
|
||||
|
||||
plt.legend(bbox_to_anchor=(1, 1), loc="upper left")
|
||||
plt.show()
|
||||
|
||||
try:
|
||||
get_monitors()
|
||||
plt.show()
|
||||
except ScreenInfoError:
|
||||
plt.savefig("jwst_tempertature.png", dpi=300)
|
||||
|
109
poetry.lock
generated
109
poetry.lock
generated
@ -25,6 +25,14 @@ category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[[package]]
|
||||
name = "cython"
|
||||
version = "0.29.26"
|
||||
description = "The Cython compiler for writing C extensions for the Python language."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||
|
||||
[[package]]
|
||||
name = "fonttools"
|
||||
version = "4.28.5"
|
||||
@ -129,6 +137,25 @@ category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[[package]]
|
||||
name = "pyobjc-core"
|
||||
version = "8.1"
|
||||
description = "Python<->ObjC Interoperability Module"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[[package]]
|
||||
name = "pyobjc-framework-cocoa"
|
||||
version = "8.1"
|
||||
description = "Wrappers for the Cocoa frameworks on macOS"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.dependencies]
|
||||
pyobjc-core = ">=8.1"
|
||||
|
||||
[[package]]
|
||||
name = "pyparsing"
|
||||
version = "3.0.6"
|
||||
@ -177,6 +204,18 @@ urllib3 = ">=1.21.1,<1.27"
|
||||
socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
|
||||
use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"]
|
||||
|
||||
[[package]]
|
||||
name = "screeninfo"
|
||||
version = "0.8"
|
||||
description = "Fetch location and size of physical screens."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6.2,<4.0.0"
|
||||
|
||||
[package.dependencies]
|
||||
Cython = {version = "*", markers = "sys_platform == \"darwin\""}
|
||||
pyobjc-framework-Cocoa = {version = "*", markers = "sys_platform == \"darwin\""}
|
||||
|
||||
[[package]]
|
||||
name = "setuptools-scm"
|
||||
version = "6.3.2"
|
||||
@ -224,7 +263,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
|
||||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = "^3.8.2, <3.11"
|
||||
content-hash = "5da99d287600235221575523238af2a0f760f744549b8c4d82c2853d801d4a92"
|
||||
content-hash = "dacbb1cb93f13aee4dae3562fa02e1a383b522282ad09dace6500b5ab343d4c9"
|
||||
|
||||
[metadata.files]
|
||||
certifi = [
|
||||
@ -239,6 +278,54 @@ cycler = [
|
||||
{file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"},
|
||||
{file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"},
|
||||
]
|
||||
cython = [
|
||||
{file = "Cython-0.29.26-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c4b003b6b7aa9e74552ef8d4e6009b3e3c3e8fa585710b3a6d062e088e460c1b"},
|
||||
{file = "Cython-0.29.26-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:ce804a021c92fea66c8c100781a111706f21bade7a546895c5a9c57fe2df8b24"},
|
||||
{file = "Cython-0.29.26-cp27-cp27m-win32.whl", hash = "sha256:8e07121b34221458a2151d37e137b8f5b011a9c51dd38db2499a6198590aa319"},
|
||||
{file = "Cython-0.29.26-cp27-cp27m-win_amd64.whl", hash = "sha256:233a87db76941626f1db08f4b25a4a5b425b13b64ed0e673c3641f7b650a48d8"},
|
||||
{file = "Cython-0.29.26-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:93840f2071c1f15e613509eadee1fbcd335e8666772437fe5038e24059edd48c"},
|
||||
{file = "Cython-0.29.26-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:10402f0f1564ffc6ecb9c45e07f995771d05bb0b0e1d151e40574638292ee3a5"},
|
||||
{file = "Cython-0.29.26-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:6773cce9d4b3b6168d8feb2b6f06b658ef1e11cbfec075041745666d8e2a5e45"},
|
||||
{file = "Cython-0.29.26-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:c813799d533194b7d85203d881d8b4f567a8c644a67f50d47f1ffbf316df412f"},
|
||||
{file = "Cython-0.29.26-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:362fbb9cb4627c7786231429768b54aaba5459a2a0e46c25e59f202ca6155437"},
|
||||
{file = "Cython-0.29.26-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2b834ff6e4d10ba6d7a0d676dd71c1b427a181ddbbbbf79e91d1861557aab59f"},
|
||||
{file = "Cython-0.29.26-cp34-cp34m-win32.whl", hash = "sha256:0c3093bc99facfc97e5019f6c5bc39987663792265c1334d9fc9e37c3a3dcd6f"},
|
||||
{file = "Cython-0.29.26-cp34-cp34m-win_amd64.whl", hash = "sha256:bbf0149680c1fca07200a3ed372b22e6bad7851d191b717a61f9a68af370e180"},
|
||||
{file = "Cython-0.29.26-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a1cc55db32cd39474081d478263b96e036552cdbbab8831c90ea43fb385a9b66"},
|
||||
{file = "Cython-0.29.26-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:ebe32e002a9e6553de399033e259ece72aa17c77f740b265e66f122572a8a278"},
|
||||
{file = "Cython-0.29.26-cp35-cp35m-win32.whl", hash = "sha256:6b385f68789c3e8a75b4827e8a4970ff04605ad3cb1c0b41005cc69368dad65d"},
|
||||
{file = "Cython-0.29.26-cp35-cp35m-win_amd64.whl", hash = "sha256:1519eb639de308f5763eb0666b4cc7bd3958268f3f6228cc610b7b4d6c94b68b"},
|
||||
{file = "Cython-0.29.26-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:e118525defec3f67471d8ee5ce04340d43195410a87e5d7ec8a1a9e953c0066a"},
|
||||
{file = "Cython-0.29.26-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:706ea55f58c2722206e51cd9a8754ed0995c4c4231d24b095875d2641d745222"},
|
||||
{file = "Cython-0.29.26-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:77913fe27c5e22c995bac090d01e200ff91e5f58aa944e2d2e94cbf67ea2ae34"},
|
||||
{file = "Cython-0.29.26-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:51923120f57a42c59f5ee6bba9e89a31a394ae8cd419c753f64d8a3aea1ee8b7"},
|
||||
{file = "Cython-0.29.26-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:82881565d04027728d7762edd8c085927a840873af7ee049d703e0ca226bc08d"},
|
||||
{file = "Cython-0.29.26-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:531303085503959338e6cdac630626280ef111aecbb22d48321673a8c3897c0a"},
|
||||
{file = "Cython-0.29.26-cp36-cp36m-win32.whl", hash = "sha256:0205b685802eb4c039b14f67b7ac3f00c55ff04b9e3871df2249576d3e59ba42"},
|
||||
{file = "Cython-0.29.26-cp36-cp36m-win_amd64.whl", hash = "sha256:7df94e56872df8f396ca669466fee60256f69f678654239f706b1e643c2ac4a5"},
|
||||
{file = "Cython-0.29.26-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:4b7d04b393d9a4b5fec0cbc4b0f29fe083a9d862d95231a6e7608978bd661d7e"},
|
||||
{file = "Cython-0.29.26-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:af91dd63ac5f1f7fc70dc91ea063f727db42b5eb934d1f3832611be18e25171e"},
|
||||
{file = "Cython-0.29.26-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:d83dad8dc6c63706cb3178dc79010b3865b1345090727189d2cd61758a825ee8"},
|
||||
{file = "Cython-0.29.26-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ca10e9fde0eaba1407ab353ff07a26daaa3e4dbe356108a149e482d441f070dd"},
|
||||
{file = "Cython-0.29.26-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:fec66cd0a48697fab903854566235aecf1084f62e3163d6589ae7335a1b4d448"},
|
||||
{file = "Cython-0.29.26-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b3041e45aefaa4449fd671902132c0ac1f72eedaedac745c0e1a70a13bf990bb"},
|
||||
{file = "Cython-0.29.26-cp37-cp37m-win32.whl", hash = "sha256:ed76fb98979f02b5e89079906071983a36f3634d3028b86f935cf0196f24fcaa"},
|
||||
{file = "Cython-0.29.26-cp37-cp37m-win_amd64.whl", hash = "sha256:4d868e1a41f5123f51a20c1b8e82f7cb6fa3370c104e98e707f7c910e8cadad1"},
|
||||
{file = "Cython-0.29.26-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:868f309095e557f06dc58723ae865e8c65cfedb2646a562bd8080c92d69e4e4b"},
|
||||
{file = "Cython-0.29.26-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:be550b566345bf53b95616334793ce42a128cf1d9dcde1e28cbf7ce52ea61d6d"},
|
||||
{file = "Cython-0.29.26-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:be13be1e2b9b7395588f2a23bfa692f2f3e6f7936ccf7825c83431b8c8c3452b"},
|
||||
{file = "Cython-0.29.26-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:41ee918480371ae5e5851ba9b1ead5a183e24aedb27bf807c7405d124e943f40"},
|
||||
{file = "Cython-0.29.26-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:c91b1ba0d43f7f7ccde8121c672207c7891735ddcc83496af1e0ab617ddc4aba"},
|
||||
{file = "Cython-0.29.26-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5ecf5cf5b57086cc6c1cfc76d6353bbd7023e95da32e0883f1302ca50e481c33"},
|
||||
{file = "Cython-0.29.26-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:0ffce25bf50fa926ec6bf8d6f29650e7cb33fae445938c9880e1ce9b776353ef"},
|
||||
{file = "Cython-0.29.26-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:5041adfef502d67ecd5e291a7cf645a37fed7a9dac557f40d491053f35204d00"},
|
||||
{file = "Cython-0.29.26-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl", hash = "sha256:5fd5db458c9d3d2c2abd047f3190624d9cce8a80a8e0ca0baa69cfd133a523bc"},
|
||||
{file = "Cython-0.29.26-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:75eaa22911d2ec37a3841f77b710b178c805cd378b5e1c4fb82dbc35620d2062"},
|
||||
{file = "Cython-0.29.26-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:3aed8c642e8fb27024bca46830b7f62335a44a92354acf708d6b8d050f945a3a"},
|
||||
{file = "Cython-0.29.26-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b5ca05c2bfba0c2480b5fd390ecffe46b8da574d887d600388d6e3caf3f99a88"},
|
||||
{file = "Cython-0.29.26-py2.py3-none-any.whl", hash = "sha256:f5e15ff892c8afad64931ee3dd723c4755c2c516606f9aae7613bebfac62b0f6"},
|
||||
{file = "Cython-0.29.26.tar.gz", hash = "sha256:af377d543a762867da11fcf6e558f7a4a535ff8693f30cce123fab10c00fa312"},
|
||||
]
|
||||
fonttools = [
|
||||
{file = "fonttools-4.28.5-py3-none-any.whl", hash = "sha256:edf251d5d2cc0580d5f72de4621c338d8c66c5f61abb50cf486640f73c8194d5"},
|
||||
{file = "fonttools-4.28.5.zip", hash = "sha256:545c05d0f7903a863c2020e07b8f0a57517f2c40d940bded77076397872d14ca"},
|
||||
@ -427,6 +514,22 @@ pillow = [
|
||||
{file = "Pillow-9.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:95545137fc56ce8c10de646074d242001a112a92de169986abd8c88c27566a05"},
|
||||
{file = "Pillow-9.0.0.tar.gz", hash = "sha256:ee6e2963e92762923956fe5d3479b1fdc3b76c83f290aad131a2f98c3df0593e"},
|
||||
]
|
||||
pyobjc-core = [
|
||||
{file = "pyobjc-core-8.1.tar.gz", hash = "sha256:920914a1a4cd4f8a54babe93f0b4e4cd93b51d11ae38d8ef17f5edb603b7a949"},
|
||||
{file = "pyobjc_core-8.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ddd9b964df292fa0bbd0d0694befe4c524977780e3f11221ac7e8683d5e9590f"},
|
||||
{file = "pyobjc_core-8.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b6662805d288cd1bfd257565ddc07541d0162b3167af15e39f7a654b94f6667b"},
|
||||
{file = "pyobjc_core-8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:43f251881fe36dcb9ca9f7946ab13ddb4aa2499bde3c8bf2dc8144b5fe884629"},
|
||||
{file = "pyobjc_core-8.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:781cfa7a3f72ce7213b4c341b5c552cd63b6664b3b444a23fcb1d5fdd417aa8b"},
|
||||
{file = "pyobjc_core-8.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:951e716ad30bea52190f5e82604ee2c7f3dc6c04722cf0a3311ad7e4e6af5134"},
|
||||
]
|
||||
pyobjc-framework-cocoa = [
|
||||
{file = "pyobjc-framework-Cocoa-8.1.tar.gz", hash = "sha256:9de42dc3e0911d6e30cf41bb4baf9aaf2723a27053f7edbd8ad7d758cf41b81d"},
|
||||
{file = "pyobjc_framework_Cocoa-8.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b588a3ed9adcdbfafcbfa77bbd72844afb8d987a70cce7a4f3a35a9474271a11"},
|
||||
{file = "pyobjc_framework_Cocoa-8.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:626f6d084a537b365c0786674036643695e7829ebaf7889aa9b327f3b897a800"},
|
||||
{file = "pyobjc_framework_Cocoa-8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8075f6cf8cac804d9ed05355c68a8a0cd3ce31a310469279c6c7e49dad47b010"},
|
||||
{file = "pyobjc_framework_Cocoa-8.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:9e47a2709b8458422752efccaa89f4b52cc8e01345ec71c43c713a891f084bb6"},
|
||||
{file = "pyobjc_framework_Cocoa-8.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0b0aee74f6c32103338e3735f308052f4cc534c25762130303638aaa6d62d851"},
|
||||
]
|
||||
pyparsing = [
|
||||
{file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"},
|
||||
{file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"},
|
||||
@ -443,6 +546,10 @@ requests = [
|
||||
{file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"},
|
||||
{file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"},
|
||||
]
|
||||
screeninfo = [
|
||||
{file = "screeninfo-0.8-py3-none-any.whl", hash = "sha256:dac455fbed79e82c481d59a00962f543e5a9bf3c2cc9f0e48e2714eb8d3cec23"},
|
||||
{file = "screeninfo-0.8.tar.gz", hash = "sha256:9501bf8b8458c7d1be4cb0ac9abddddfa80b932fb3f65bfcb54f5586434b1dc5"},
|
||||
]
|
||||
setuptools-scm = [
|
||||
{file = "setuptools_scm-6.3.2-py3-none-any.whl", hash = "sha256:4c64444b1d49c4063ae60bfe1680f611c8b13833d556fd1d6050c0023162a119"},
|
||||
{file = "setuptools_scm-6.3.2.tar.gz", hash = "sha256:a49aa8081eeb3514eb9728fa5040f2eaa962d6c6f4ec9c32f6c1fba88f88a0f2"},
|
||||
|
@ -10,6 +10,7 @@ requests = "^2.26.0"
|
||||
numpy = "1.21.5"
|
||||
matplotlib = "3.5.1"
|
||||
pandas = "^1.3.5"
|
||||
screeninfo = "^0.8"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
|
||||
|
23
requirements.txt
Normal file
23
requirements.txt
Normal file
@ -0,0 +1,23 @@
|
||||
certifi==2021.10.8; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0"
|
||||
charset-normalizer==2.0.10; python_full_version >= "3.6.0" and python_version >= "3"
|
||||
cycler==0.11.0; python_version >= "3.7"
|
||||
cython==0.29.26; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and sys_platform == "darwin"
|
||||
fonttools==4.28.5; python_version >= "3.7"
|
||||
idna==3.3; python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.5"
|
||||
kiwisolver==1.3.2; python_version >= "3.7"
|
||||
matplotlib==3.5.1; python_version >= "3.7"
|
||||
numpy==1.21.5; python_version >= "3.7" and python_version < "3.11"
|
||||
packaging==21.3; python_version >= "3.7"
|
||||
pandas==1.3.5; python_full_version >= "3.7.1"
|
||||
pillow==9.0.0; python_version >= "3.7"
|
||||
pyobjc-core==8.1; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and sys_platform == "darwin" and python_version >= "3.6"
|
||||
pyobjc-framework-cocoa==8.1; python_full_version >= "3.6.2" and python_full_version < "4.0.0" and sys_platform == "darwin" and python_version >= "3.6"
|
||||
pyparsing==3.0.6; python_version >= "3.7"
|
||||
python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.7"
|
||||
pytz==2021.3; python_full_version >= "3.7.1"
|
||||
requests==2.27.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0")
|
||||
screeninfo==0.8; python_full_version >= "3.6.2" and python_full_version < "4.0.0"
|
||||
setuptools-scm==6.3.2; python_version >= "3.7"
|
||||
six==1.16.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7"
|
||||
tomli==2.0.0; python_version >= "3.7"
|
||||
urllib3==1.26.8; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4"
|
Loading…
Reference in New Issue
Block a user