exodigital 0.0.2
A digital clock with displays the weather and temperature of local and global cities
License: MIT
Keywords: Exo digital clock

ExoDigital
~~~~~~~~~~
A digital clock displays the weather and temperature of local and global cities 

Features:
-	Display the live time and date of the timezone in any city
-	Display the local time and date of the local pc time zone
-	Display the local time of two styles 24 hours or 12 hours am or pm  
-	Display the live weather and weather shape with descriptions of local and global cites
-	Shows the Fahrenheit F and Celsius C temperature.
-	Customize the date and time and weather function
-	Customize the dark and daylight theme styles.
-  its  tool to convert the temperature from Fahrenheit to Celsius or opposite
-  its tool to convert from 12 hours to 24 hours or opposite
-  its tool to respond to a piece of current condition information  of weather for 28 status optional 

Usage:
ExoDigital is used for default options or custom settings:
ExoDigital(is_dark=None, is24Hour=None,is_Fahrenheit=None,time_out_delay=1000,showlogs=True)

Functions implementing:
- SetTime(hour,minute,seconds)#time is 24H style format from 0-24, its possible to set-hour only, [minutes,second] could be retrieved from a local pc.

- SetDate(month,day) # set Month from 1-12, the day could be set from 1-31,or 30 depends on allowance month criteria.

- SetWeather('city_name',live_timezone=False)
   #could be a country name or city and should be a valid name, its could be use country code.
	# live_timezone: displays date and time of currently selected city name.

-SetDateTime('city_name') #displays the timezone of that city only,its could be use country code as well.

- SetWeather_custom('city_name',temperature,wather_index) 
   #wather_index should be from 0-9 as illustrated below:
   0-Unknown or all types.
	1-Sunny.
	2-Cloudy.
	3-Rainy.
	4-Hard rainy.
	5-Snowy.
	6-Thunder rain.
	7-Thunder hard rain.
	8-Thunder.
	9-Partly Cloudy.

-GetWeatherElements could retrieves the additional information of weather as text only.

-GetDateElements is to obtain the date of the GUI exodigtail interface.

-GetClockElements is to obtain the current time which is live data invoked.

Example-1: in this example, the code shows when implementing the code below its displays only the 
date and time of local pc  
Code snapshot:========================
from exoticwondrous import ExoDigital 
exo = ExoDigital()
r = exo.RunAndWait()
print(r)#show any error occurred


Example-2: In this example, the code shows when implementing the code below its displays the live weather of
 selected desired city with live information on weather and date and time of that city. 
Code snapshot:========================
from exoticwondrous import ExoDigital
exo=ExoDigital() # use a default configuration 
exo.SetWeather('Japan',True)
r=exo.RunAndWait()
print(r)
  

Example-3: in this example, the code shows as an example by the typed US a country code to display the timezone of the United States of America,  with a dark (night) theme as well as displays the date and time in 12 format(default) in the capital city timezone.   
Code snapshot:=======================
from exoticwondrous import ExoDigital 
exo = ExoDigital(is_dark=True,is_Fahrenheit=True)
exo.SetDateTime('US')# getting a capital city which is here a Washington DC timezone
r = exo.RunAndWait()
print(r)#show any error occurred


Example-4: in this example, the code shows when implementing the code below its displays the custom weather of
 with date and time of local pc time zone.   
Code snapshot:=========================
from exoticwondrous import ExoDigital 
exo = ExoDigital(is24Hour=True)
exo.SetWeather_custom('New York',25,6)
r = exo.RunAndWait()
print(r)

Example-5: in this example, the code shows when implementing the code below its displays a custom date and time
Code snapshot:=========================
From exoticwondrous import ExoDigital 
exo = ExoDigital()# used a default configuration.
exo.SetTime(10,10)
exo.SetDate(1,10)
r = exo.RunAndwait()
print(r)


Example-6: in this example, the code shows when implementing the code below its displays a custom date and time
Code snapshot:=========================
From exoticwondrous import ExoDigital 
exo = ExoDigital()
exo.SetTime(10,10)
exo.SetDate(1,10)
r = exo.RunAndwait()
print(r)



Example-7: in this example, the code shows when implementing the code below its displays a temperature in Fahrenheit,
         and the additional information, could be humidity,wind speed by Km/h,wind direction with sunrise and sunset times  
Code snapshot:=========================
exo=ExoDigital(is_Fahrenheit=1)
exo.SetWeather('Japan',True)
w= exo.GetWeatherElements(humidity=True,windspeedKmph=True,windDirection=True,sunrise=True,sunset=True)
print(w)
r=exo.RunAndWait()
print(r)
================================
Output: ['82', '20', 'SW', '05:17 AM', '06:08 PM']
======================================

Example-8: in this example, the code shows when implementing the code below its displays a temperature in Celsius,
         and the additional information, could be all to be invoked.  
Code snapshot:=========================
exo=ExoDigital()
exo.SetWeather('Japan',True)
w= exo.GetWeatherElements(all=True)
print(w)
r=exo.RunAndWait()
print(r)
================================
Output: ['Japan', '82', '1', '82', 'Clear', '1013', '30', '0.0', '23', '2022-09-02 04:22 AM', '220', '20', '12', 'SW', 'Shikinejima', 'Tokyo', '34.327', '139.218', '0.0', '83', '77', '9.8', '05:17 AM', '09:26 PM', 'First Quarter', '10:51 AM', '06:08 PM', '42']
======================================

Example-9: in this example, the code shows a call-back function from 'exodital' GUI, so it's possible for
           get its date information.  
Code snapshot:=========================
#function call-back of 'exodigital' GUI obtained its date 
def fun_date (y,m,d):
    print('{}/{}/{}'.format(y,m,d))

exo=ExoDigital(is_Fahrenheit=True)
exo.SetWeather('New York',True)
fdate= exo.FUNC(fun_date)
exo.GetDateElements(fdate)
r=exo.RunAndWait()
print(r)
================================
Output: 2022/9/1
======================================

Example-10: in this example, the code shows a call-back function from 'exodital' GUI, so it's possible for
           get its real time information.  
Code snapshot:=========================
#function call-back of 'exodigital' GUI obtained its current time, this function will calling in realtime as used 
def fun_time (h,m,s):
    print('{}:{}.{}'.format(h,m,s))

exo=ExoDigital(time_out_delay=5000)# use to increase time-out of display
exo.SetWeather('New York',True)
ftime= exo.FUNC(fun_time)
exo.GetClockElements(ftime)
r=exo.RunAndWait()
print(r)
================================
Output: 15:54.33
        15:54.34
        15:54.35
		  .. .. ..
		  .. .. ..
======================================


Requirements:
the modules [requests,pytz] should be installed automatically during package installation, however, if it's not installed, please install them manually,
-pip install requests
-pip install pytz

if any error occurred of 'requests' module,try to solve them by install uplink as pre-required module for requests 
-pip install uplink

Questions and comments
Telegram:https://t.me/exoticwondrous
Email:ahmdsmhmmd@gmail.com

Change Log
==========

0.0.1 (08/08/2022)
-------------------
- First Release

0.0.2 (08/09/2022)
-------------------
-- Fixed some bugs
-- Fixed ExoDigital constructors's parameters
-- Added parameter live_timezone to SetWeather function, for obtained time zone of typed city name.
-- Added GetWeatherElements function so get more live-data of weather, such as max temperature,min temperature,
         uvindex,humidity,pressure,pressure Inches,precipMM,cloudcover,local Observed DateTime,wind dir degree,
         sun raise,sunset times, and more ..
-- Added GetClockElements,GetDateElements functions for obtained information of clock and date of current
        Exodigital GUI data.    
-- Added SetDateTime for set any city and obtained tiemzone of that city only.