From 3120bf487347ba1771f7d26f652482fbe797d950 Mon Sep 17 00:00:00 2001 From: Science Spot <69678617+Scientific-Guy@users.noreply.github.com> Date: Sun, 20 Sep 2020 21:34:16 +0530 Subject: [PATCH] v0.0.2 --- README.md | 120 ++++++++++++++++ build/lib/nasaapi/__init__.py | 81 +++++++++++ dist/python-nasa-api-0.0.2.tar.gz | Bin 0 -> 2893 bytes dist/python_nasa_api-0.0.2-py3-none-any.whl | Bin 0 -> 3000 bytes nasaapi/__init__.py | 81 +++++++++++ nasaapi/__pycache__/__init__.cpython-35.pyc | Bin 0 -> 5381 bytes python_nasa_api.egg-info/PKG-INFO | 132 ++++++++++++++++++ python_nasa_api.egg-info/SOURCES.txt | 8 ++ python_nasa_api.egg-info/dependency_links.txt | 1 + python_nasa_api.egg-info/top_level.txt | 1 + setup.cfg | 3 + setup.py | 22 +++ 12 files changed, 449 insertions(+) create mode 100644 README.md create mode 100644 build/lib/nasaapi/__init__.py create mode 100644 dist/python-nasa-api-0.0.2.tar.gz create mode 100644 dist/python_nasa_api-0.0.2-py3-none-any.whl create mode 100644 nasaapi/__init__.py create mode 100644 nasaapi/__pycache__/__init__.cpython-35.pyc create mode 100644 python_nasa_api.egg-info/PKG-INFO create mode 100644 python_nasa_api.egg-info/SOURCES.txt create mode 100644 python_nasa_api.egg-info/dependency_links.txt create mode 100644 python_nasa_api.egg-info/top_level.txt create mode 100644 setup.cfg create mode 100644 setup.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..86bc7d0 --- /dev/null +++ b/README.md @@ -0,0 +1,120 @@ +# Python Nasa API + +Simple wrapper for NASA Api written in python which was previously written by abh80 in **Javascript** as NPM which is deprecated now so i aka Science Spot recreated it in **Python** using requests modules! + +## Quick Docs + +You need NASA's Official API to use this module! + +### Load Client Class + +```py +# Import Client Class +from nasaapi import Client + +# Load your api +nasa = Client(api) +# Replace your api with the original one! +``` + +### Apod + +```py +print(nasa.apod()) +# Will return a dict + +print(nasa.apod_image()) +# Will retun apod image url +``` + +### Earth + +```py +print(nasa.earth(lat, lon, date)) +# Lat Lon parameters should be latitude and longitude +# Date parameter should be in the form of YYYY-MM-DD +# Will return a dict + +print(nasa.earth_image(lat, lon, date)) +# Will return image url +``` + +### Insight Weather Data + +```py +print(nasa.insight()) +# Will return a dict +``` + +### Data of mars rovers + +There are two methods to get this data + +**1. Using MarsRovers Class** + +```py +from nasaapi import MarsRovers + +rovers = MarsRovers(api_key, sols, camera) +# api_key would be your NASA Api key. Sols would be the Mars Days. Camera is the name of camera to view + +print(rovers.curiosity()) # Get data of Curiosity Rover +print(rovers.opportunity()) # Get data of Oportunity Rover +print(rovers.spirit()) # Get data of Spirit Rover +``` + +**2. Using Client Class** + +```py +rovers = nasa.mars_rovers(sols, camera) +# Sols would be the Mars Days. Camera is the name of camera to view + +print(rovers.curiosity()) # Get data of Curiosity Rover +print(rovers.opportunity()) # Get data of Oportunity Rover +print(rovers.spirit()) # Get data of Spirit Rover +``` + +### Techport + +Get data of nasa's techport + +```py +print(nasa.techport(id)) +# ID will be the id of the techport project! +# Will return dict unless its a better id +``` + +### Two Line Element Sets of Nasa + +Get data of nasa's tle + +```py +print(nasa.tle.search(query)) +# Will return data of a search + +print(nasa.tle.get(query)) +# Will get of 1 data only +``` + +### NIVL aka Nasa Image and Video Library + +Get images, Search Images, and other image and video library of NASA + +```py +print(nasa.nivl.search(query)) +# Query will be the query you will search + +print(nasa.nivl.asset(id)) +# Get Asset by ID + +print(nasa.nivl.metadata(id)) +# Get Metadata by ID + +print(nasa.nivl.captions(id)) +# Get Captions by ID +``` + +## Support + +- [Discord Support Server](https://discord.gg/FrduEZd) +- [GitHub Repo](https://github.com/Scientific-Guy/python-nasa-api) \ No newline at end of file diff --git a/build/lib/nasaapi/__init__.py b/build/lib/nasaapi/__init__.py new file mode 100644 index 0000000..545b9d4 --- /dev/null +++ b/build/lib/nasaapi/__init__.py @@ -0,0 +1,81 @@ +from json import loads as load +from random import randint as random +import requests + +__version__ = '0.0.2' + +class MarsRovers(): + + def __init__(self, api_key, sols=random(0, 2000), camera="fhaz"): + self.api_key = api_key + self.sols = str(sols) + self.camera = str(camera) + + def curiosity(self): + return load(requests.get('https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol=' + self.sols + '&camera=' + self.camera + '&api_key=' + self.api_key).text) + + def spirit(self): + return load(requests.get('https://api.nasa.gov/mars-photos/api/v1/rovers/spirit/photos?sol=' + self.sols + '&camera=' + self.camera + '&api_key=' + self.api_key).text) + + def opportunity(self): + return load(requests.get('https://api.nasa.gov/mars-photos/api/v1/rovers/opportunity/photos?sol=' + self.sols + '&camera=' + self.camera + '&api_key=' + self.api_key).text) + +class NIVL(): + + def __init__(self, api_key): + self.api_key = api_key + self.base = 'https://images-api.nasa.gov/' + + def search(self, query): + return load(requests.get(self.base + 'search?q=' + query).text) + + def asset(self, id): + return load(requests.get(self.base + 'asset/' + id).text) + + def metadata(self, id): + return load(requests.get(self.base + 'metadata/' + id).text) + + def captions(self, id): + return load(requests.get(self.base + 'captions/' + id).text) + +class TLE(): + + def search(self, query): + return load(requests.get('https://data.ivanstanojevic.me/api/tle?search=' + query).text) + + def get(self, query): + return load(requests.get('http://data.ivanstanojevic.me/api/tle/' + query).text) + +class Client(): + + def __init__(self, api_key): + self.api_key = api_key + self.tle = TLE() + self.nivl = NIVL(self.api_key) + + def apod(self): + return load(requests.get('https://api.nasa.gov/planetary/apod?api_key=' + self.api_key).text) + + def apod_image(self): + return load(requests.get('https://api.nasa.gov/planetary/apod?api_key=' + self.api_key).text).url + + def earth(self, lat, lon, date): + return load(requests.get('https://api.nasa.gov/planetary/earth/assets?lon=' + str(lon) + '&lat=' + str(lat) + '&date=' + str(date) + '&&dim=0.10&api_key=' + self.api_key).text) + + def earth_image(self, lat, lon, date): + try: + load(requests.get('https://api.nasa.gov/planetary/earth/assets?lon=' + str(lon) + '&lat=' + str(lat) + '&date=' + str(date) + '&&dim=0.10&api_key=' + self.api_key).text).url + except: + return None + + def insight(self): + return load(requests.get('https://api.nasa.gov/insight_weather/?api_key=' + self.api_key + '&feedtype=json&ver=1.0').text) + + def mars_rovers(self, sols=random(0, 2000), camera="fhaz"): + return MarsRovers(self.api_key, sols, camera) + + def techport(self, id): + try: + return load(requests.get('https://api.nasa.gov/techport/api/projects/' + id + '?api_key=' + self.api_key).text) + except: + return 'invalid id' \ No newline at end of file diff --git a/dist/python-nasa-api-0.0.2.tar.gz b/dist/python-nasa-api-0.0.2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..78533f296450fb6a95d671a67199a46b657c46e4 GIT binary patch literal 2893 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 literal 0 HcmV?d00001 diff --git a/dist/python_nasa_api-0.0.2-py3-none-any.whl b/dist/python_nasa_api-0.0.2-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..9f81936d75fbb83a881c661fe710fa44c6c6de18 GIT binary patch literal 3000 zcma);2Qb`e8^Hf|v3d>ZiM61sEe@CqKh6a*yue=oFs%q4OyK; zFIgl+iCtwKCj`L?CwKFGm%GU~m-n4#{xkoX_czbH^Lw86F-Cx?PXGWw2Qc1|Me@fIAZaa325lu=BRF!=NQ>Y|tKP9~&ESOu(3_iszIh+cfj8DjV;)Q?~?#?146o zkq2ry51@?<s1#u{3h53mMGhBwB1!(FR{1omd|lrt|}I)b%D z56_vr%iM6WTg7goj`nyL6K=_R=h-Q*z(3Z2qFt5wk~d$1A7#x27)oTxDP1|UEo<+XOXbAUI6o;)%P3(~+d}j;%o5Tau1Hz_Y@^{v-++A| zgBgVgS%VC549~9L*2VG1D_obgju%J!NIsp?D>Cj*@sW?Kd8R9OB2H$gw$NPjDd?zD z$A{ceCFMVq)N^5W@}N~#+rL|F(=^jH+rj@blI18kzD`fmZN;l=D5v-iDKE!zRylaz zFU;f>lSjU)KLD)8A!=;!}rE4vi`yP$z!k)MDclW_ur$eU` ztGq77Srzio;uT>OxE5Fk5x+&9AuxXv7g1LxujLCuvOY5+WWJuDBnNSA#%52ZMWk|7 z-}8!2OSroH6T7_a6yTPnvjdJ!?lqi=#YqM`Ae2*nU97AsB%X2vf0r% zFaF@{rIyrHj;SW*A)176&W0O(DPxW)hRG-hPp}jDD=wb9P&{k=KmSi1`)>?s=ZmBU069hgfFApg3Gi|8^sxC_ z1~$ia0GAY(6qgovKzsYZ(H>5o5(Zi(>YC~%>IeIpkb~T z@8o_|%u29iDJrvkeBFrtLLjcymhlBcWqa-!u}_v+t^oU@mayIB#285!TR{?(0c~qP ztndinQua4UQ;=nM}NN{s~@)kCx3-D{E= za&kXi8hs=`8b5j)|LSqkR^GwXwr*9url$#8UVW#6BV9+VE}N{P2j3oaD!(+yV!XFi zxa(4MQk5~!3vH{(^2v5?uDe?MpSXxk)3cox1Uug*wWz(0@(0DynjEU!_Xwy!uqimg zpOdW%dL4FFtOk6Ahb*=1TIjn)s;nu$n>wq9&X2YfaTH$Tb@XQ`)JvSTEw?{KZR1O? zhlLE1A&j59gZz2IsvMT_6_EA0)1?-IlD*IqkVDysx$W)RGMyG(YZv0osZ8yq z){7cK;09LPE_}6KCT#rM~;i9>!PM~68 z%&(E+qV3_NFw?+qi@znxIPvxn^@`QhBBY|dfZ(>gcrswYz7Jr3DSOPN}}ym8H-y0S?QXcbeXST^Q+X@olgkUJ{T&n&a|ta()N8U zaC`Yonfybs_i!(v=9fJySPQA@Ot$-n+8D7UD!DcF-E-6T=%l0B*qtGB_BV#o(2g2B z0cP*F+>N)o-c6js#JHv9?li2tZf}q+gEz(#qP!c>;@HxUz$MWJIr|A z{H3f;E$7Co^4FE}Okpw8zZnEkQ?A*H9GP0%oDA-l*hVcGPaUOuSW=Ru4c}R@t=gN5 zsJip}v>9G+P7d%~=UEA5*#-o&8 za5!{=+1znV{No-8y;6w`!y6sIh*XrQI8qvSOo5>ChxUKS!0)V< zI|cEU?HQFk!Q}HVQR2ezN^no26sod7XF3R1fSm#_rNq8$O-}6D<;j;f>J4cxH>U`Q za3A(Kd{!uSs`wx~dc}m>7rir=EH#-`kg&$5>r(dmXtiXJ%WrsHq*leUV!tJ)w)-=QG8}bg5-F>tZK+Fo855(`x-(& z(8$bmw6ydYhja`EMwk(BvBCbKYLp~FW^TdDXaE7%gY`%}N9pMGz{KMuAfl*Y$zd6} zF&P4BfuVOuVq_aO&J2a?4fNFp`boJ{|&@$QafxaQcm_h#&(!%@#2>2^U zzT;-Q(7PnUaGV?6aln5dM;}j&jk}|tqr13|zfT_mW~dK)P5Ku4wSyD15v*V;07yR$ z;U9pav^0!Rn$ZJF*a%4g7@n!7W_s)XMk zU^ee=O$kB!{i4>lm^XgSzgV(6UX~WlIBL=mk`42ge1lX-;*a$RVT}hpO=_LArQ?o) zI7ea!9y)(XaFDnbsYo!ua}*Oa!y5bP2SZ3phf20wN#nnkDo?teMCS6{59_77$2c?I zbb&q+q9319(s>E|##{xY)AHv0lJO+vsuhF&4 zTn8fOEZ}5hjGzLY0RI0dczlV+0ND*K;(-JNwvb`mZ$u F{0>#n4R-(l literal 0 HcmV?d00001 diff --git a/nasaapi/__init__.py b/nasaapi/__init__.py new file mode 100644 index 0000000..545b9d4 --- /dev/null +++ b/nasaapi/__init__.py @@ -0,0 +1,81 @@ +from json import loads as load +from random import randint as random +import requests + +__version__ = '0.0.2' + +class MarsRovers(): + + def __init__(self, api_key, sols=random(0, 2000), camera="fhaz"): + self.api_key = api_key + self.sols = str(sols) + self.camera = str(camera) + + def curiosity(self): + return load(requests.get('https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol=' + self.sols + '&camera=' + self.camera + '&api_key=' + self.api_key).text) + + def spirit(self): + return load(requests.get('https://api.nasa.gov/mars-photos/api/v1/rovers/spirit/photos?sol=' + self.sols + '&camera=' + self.camera + '&api_key=' + self.api_key).text) + + def opportunity(self): + return load(requests.get('https://api.nasa.gov/mars-photos/api/v1/rovers/opportunity/photos?sol=' + self.sols + '&camera=' + self.camera + '&api_key=' + self.api_key).text) + +class NIVL(): + + def __init__(self, api_key): + self.api_key = api_key + self.base = 'https://images-api.nasa.gov/' + + def search(self, query): + return load(requests.get(self.base + 'search?q=' + query).text) + + def asset(self, id): + return load(requests.get(self.base + 'asset/' + id).text) + + def metadata(self, id): + return load(requests.get(self.base + 'metadata/' + id).text) + + def captions(self, id): + return load(requests.get(self.base + 'captions/' + id).text) + +class TLE(): + + def search(self, query): + return load(requests.get('https://data.ivanstanojevic.me/api/tle?search=' + query).text) + + def get(self, query): + return load(requests.get('http://data.ivanstanojevic.me/api/tle/' + query).text) + +class Client(): + + def __init__(self, api_key): + self.api_key = api_key + self.tle = TLE() + self.nivl = NIVL(self.api_key) + + def apod(self): + return load(requests.get('https://api.nasa.gov/planetary/apod?api_key=' + self.api_key).text) + + def apod_image(self): + return load(requests.get('https://api.nasa.gov/planetary/apod?api_key=' + self.api_key).text).url + + def earth(self, lat, lon, date): + return load(requests.get('https://api.nasa.gov/planetary/earth/assets?lon=' + str(lon) + '&lat=' + str(lat) + '&date=' + str(date) + '&&dim=0.10&api_key=' + self.api_key).text) + + def earth_image(self, lat, lon, date): + try: + load(requests.get('https://api.nasa.gov/planetary/earth/assets?lon=' + str(lon) + '&lat=' + str(lat) + '&date=' + str(date) + '&&dim=0.10&api_key=' + self.api_key).text).url + except: + return None + + def insight(self): + return load(requests.get('https://api.nasa.gov/insight_weather/?api_key=' + self.api_key + '&feedtype=json&ver=1.0').text) + + def mars_rovers(self, sols=random(0, 2000), camera="fhaz"): + return MarsRovers(self.api_key, sols, camera) + + def techport(self, id): + try: + return load(requests.get('https://api.nasa.gov/techport/api/projects/' + id + '?api_key=' + self.api_key).text) + except: + return 'invalid id' \ No newline at end of file diff --git a/nasaapi/__pycache__/__init__.cpython-35.pyc b/nasaapi/__pycache__/__init__.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f843c2a9116edc219daab2e0d7e65bdf5c229882 GIT binary patch literal 5381 zcmcIo-E!N;6bRmTzE{-9R%1sU+xfe#MpboORROAM>f->V zntFzgHT7jh9oJD+S3yIn8dB9j)rJb1Qq`2I4OF#M(3YyUR5ev#t0Q;wKfs|}E31ws zeqd0jYd;R6I2okXgYH51{*WDt%R%7*Zu1+6P^n{!N&tIkQx%{GC=47p3P_&;APO}F zh=5Ej8VcB0MkOG$qznbx#F8~X@wNHg2yT-k-wD%r=S695Wf2tTyz=q4v@0m~iw& z*D$bdP;5Z_L+KVC|NZg9_aFcE^Sw_d!TBgOj|aZ-_dlFQ`=4olIt_Jqdigj;9map` zc~KlCo`<@uQM_<0!=aV6VcoRS?S;PGqR)_u^Wu}rilRS4ArTeNU|>=4%vQTF_%4(` zb5O)9i&eD?6P&?4EGX;@(x0Cu$<(~x>j74m@VY0Hi{2QP-k+XMl8IqM@8W(>i{X32 za~(}glw9`m=0g~$pEf$Vh5G462mNWkzFW^6x=q&5;nVZbBqp;@!en7LF=OT=;a?Kh z(oN_fcFYArLuDKD*>2#~aAB2|-YMB--r;LE%!k)BjG0C{O0HlPOkqnbeo9#V$u*sk2I zw(YhpwM*Pc-+jPtk08q2m=ohOkRDh_xRGUH$ehbbj0K647z_3WyMrN*+;-*+e)aoD zLx~Oy&L?kSh8+~<6qqxEC#-zrRtD+Y#nMJ&|0Fc~OB~=a^B!!y{<>U+nkQ*lS_3-rYY2U4`ddoL3 zh?a=S@nuyojlL``l<-I`AL5(nT?9@`Am;T;rn^4Cnr}>)^sa!e5(TT!s`BH#60)Ws zlj^SsY-1cIe&8qm6|iXtp-}Xt`pHAGx*6{`ApD z>+MMYo(BoTcNQIzxkw0iixB2IccTkGHi;ik&ccgm*d2$mdncptF!%Jn>#T-QDSGr> zOjk02@Efgk4|fqbO@QsbEN)(nxkJoIIbIIAcYUnfPrD_obz()%F+gmtcz`Uv?7!=l zoaE$kAhH3L+}5mFT5PsFz-|5xamB^H3ZdtD_;EvpAo@)e+>oUCrV6%Ha7&VAWX88u zur0|k^7cC_ctgr<73`>BSIYR|o7fxP%4!csQ5Yvn?ls>X7zT^oVU_}0Li?{Ge5Ra* zOWe%oSP(vwQ(k<|`IH2+B}{G^}OI*9zRpKfN*|C{CNt3I`C zIsILz2Tqkdj=QD)J_YxxRqM6HNVzK=qFr)ZW!csMcY3>Q$(g^cjre!)(=`##V`(YH zvj^#X6I+V#2tJR=-=-iJfDHhqv{0# zRiDlA5tWoQ)k<&7)SEReJ~e0t($I$B#pj&cctn7v3=`R;`K5s$Q1C^eB4>e|Q|;XN zixb~s?~y#U#dEippR|98Aqz-_#Y@dgWVJ--a~!bo3;{Eh9Krf?wi8DeqhFUMENGGS zOIrt>M`DGcb?GiIFR5ep$pN1m7E4@&0W7iz1AKe9x0XPXaCpiSq@*rWjZ|ism|nWE zSpH@dU-+Xa*o%UfE&1%ovNo|TCK*s^t_Qu_rFR#bSaqe>vYX>FY0W zG8_5Vr)Vx#vpI7xR1e%6tBHxErthM={vHLh5dA}ndlYX{yhpK5!DL7GC>EY1B}v`B zgNFOK%^e74F|)r~+rG{Zb;KTFZX6~D5@+Y gteZS*e2^coe@2@be)HI}wybugR@vU#zP;V}AEz_%v;Y7A literal 0 HcmV?d00001 diff --git a/python_nasa_api.egg-info/PKG-INFO b/python_nasa_api.egg-info/PKG-INFO new file mode 100644 index 0000000..05faa40 --- /dev/null +++ b/python_nasa_api.egg-info/PKG-INFO @@ -0,0 +1,132 @@ +Metadata-Version: 2.1 +Name: python-nasa-api +Version: 0.0.2 +Summary: Simple NASA Api Wrapper written in Python! +Home-page: UNKNOWN +License: MIT +Description: # Python Nasa API + + Simple wrapper for NASA Api written in python which was previously written by abh80 in **Javascript** as NPM which is deprecated now so i aka Science Spot recreated it in **Python** using requests modules! + + ## Quick Docs + + You need NASA's Official API to use this module! + + ### Load Client Class + + ```py + # Import Client Class + from nasaapi import Client + + # Load your api + nasa = Client(api) + # Replace your api with the original one! + ``` + + ### Apod + + ```py + print(nasa.apod()) + # Will return a dict + + print(nasa.apod_image()) + # Will retun apod image url + ``` + + ### Earth + + ```py + print(nasa.earth(lat, lon, date)) + # Lat Lon parameters should be latitude and longitude + # Date parameter should be in the form of YYYY-MM-DD + # Will return a dict + + print(nasa.earth_image(lat, lon, date)) + # Will return image url + ``` + + ### Insight Weather Data + + ```py + print(nasa.insight()) + # Will return a dict + ``` + + ### Data of mars rovers + + There are two methods to get this data + + **1. Using MarsRovers Class** + + ```py + from nasaapi import MarsRovers + + rovers = MarsRovers(api_key, sols, camera) + # api_key would be your NASA Api key. Sols would be the Mars Days. Camera is the name of camera to view + + print(rovers.curiosity()) # Get data of Curiosity Rover + print(rovers.opportunity()) # Get data of Oportunity Rover + print(rovers.spirit()) # Get data of Spirit Rover + ``` + + **2. Using Client Class** + + ```py + rovers = nasa.mars_rovers(sols, camera) + # Sols would be the Mars Days. Camera is the name of camera to view + + print(rovers.curiosity()) # Get data of Curiosity Rover + print(rovers.opportunity()) # Get data of Oportunity Rover + print(rovers.spirit()) # Get data of Spirit Rover + ``` + + ### Techport + + Get data of nasa's techport + + ```py + print(nasa.techport(id)) + # ID will be the id of the techport project! + # Will return dict unless its a better id + ``` + + ### Two Line Element Sets of Nasa + + Get data of nasa's tle + + ```py + print(nasa.tle.search(query)) + # Will return data of a search + + print(nasa.tle.get(query)) + # Will get of 1 data only + ``` + + ### NIVL aka Nasa Image and Video Library + + Get images, Search Images, and other image and video library of NASA + + ```py + print(nasa.nivl.search(query)) + # Query will be the query you will search + + print(nasa.nivl.asset(id)) + # Get Asset by ID + + print(nasa.nivl.metadata(id)) + # Get Metadata by ID + + print(nasa.nivl.captions(id)) + # Get Captions by ID + ``` + + ## Support + + - [Discord Support Server](https://discord.gg/FrduEZd) + - [GitHub Repo](https://github.com/Scientific-Guy/python-nasa-api) +Keywords: python-nasa-api +Platform: UNKNOWN +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Description-Content-Type: text/markdown diff --git a/python_nasa_api.egg-info/SOURCES.txt b/python_nasa_api.egg-info/SOURCES.txt new file mode 100644 index 0000000..d9076ca --- /dev/null +++ b/python_nasa_api.egg-info/SOURCES.txt @@ -0,0 +1,8 @@ +README.md +setup.cfg +setup.py +nasaapi/__init__.py +python_nasa_api.egg-info/PKG-INFO +python_nasa_api.egg-info/SOURCES.txt +python_nasa_api.egg-info/dependency_links.txt +python_nasa_api.egg-info/top_level.txt \ No newline at end of file diff --git a/python_nasa_api.egg-info/dependency_links.txt b/python_nasa_api.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/python_nasa_api.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/python_nasa_api.egg-info/top_level.txt b/python_nasa_api.egg-info/top_level.txt new file mode 100644 index 0000000..a7daaf6 --- /dev/null +++ b/python_nasa_api.egg-info/top_level.txt @@ -0,0 +1 @@ +nasaapi diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..badc95f --- /dev/null +++ b/setup.cfg @@ -0,0 +1,3 @@ +# Inside of setup.cfg +[metadata] +description-file = README.md \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..c0a254a --- /dev/null +++ b/setup.py @@ -0,0 +1,22 @@ +from setuptools import setup + +def readme(): + with open('README.md') as f: + README = f.read() + return README + +setup( + name="python-nasa-api", + version="0.0.2", + description="Simple NASA Api Wrapper written in Python!", + long_description=readme(), + long_description_content_type="text/markdown", + packages=['nasaapi'], + keywords="python-nasa-api", + classifiers=[ + "License :: OSI Approved :: MIT License", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + ], + license="MIT", +) \ No newline at end of file