Skip to content
Snippets Groups Projects
Commit 2eeb5acf authored by Sergey Kosukhin's avatar Sergey Kosukhin
Browse files

Remove outdated and broken Python examples

parent 65933898
No related branches found
No related tags found
1 merge request!40Fix Python interface
......@@ -56,9 +56,9 @@ Check style:
--recursive ${CI_PROJECT_DIR}
--fortran .inc
--fortran .f90
- isort ${CI_PROJECT_DIR}/src --profile black --skip-gitignore --line-length 80
- black ${CI_PROJECT_DIR}/src --line-length 80
- flake8 ${CI_PROJECT_DIR}/src --max-line-length 80
- isort ${CI_PROJECT_DIR} --profile black --skip-gitignore --line-length 80
- black ${CI_PROJECT_DIR} --line-length 80
- flake8 ${CI_PROJECT_DIR} --max-line-length 80
- git -C ${CI_PROJECT_DIR} diff --patch-with-raw > ${STYLE_PATCH}
- |
# Test if patching is necessary
......
# Copyright (c) 2013-2024 MPI-M, Luis Kornblueh, Rahul Sinha and DWD, Florian Prill. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
from libmtime import *
from libmtime import _event
print '\n\nsetup calendar:'
# setup calendar.
setCalendar(CALENDAR_TYPE.proleptic_gregorian);
#setCalendar(CALENDAR_TYPE.year_of_365_days);
# Check the current calendar.
CalType = getCalendarType();
#cType is 0-3 denoting calendar type. They can be compared with CALENDAR_TYPE.calendar_not_set, CALENDAR_TYPE.proleptic_gregorian etc..
if (CalType.cType == CALENDAR_TYPE.calendar_not_set):
print "CURRENT CAL TYPE = calendar_not_set"
elif (CalType.cType == CALENDAR_TYPE.proleptic_gregorian):
print "CURRENT CAL TYPE = proleptic_gregorian";
elif (CalType.cType == CALENDAR_TYPE.year_of_365_days):
print "CURRENT CAL TYPE = year_of_365_days";
elif (CalType.cType == CALENDAR_TYPE.year_of_360_days):
print "CURRENT CAL TYPE = year_of_360_days";
calendar_in_use = calendarToString();
print calendar_in_use;
print '\n\ntest date interface:'
# test date interface
test_date = newDate("2012-09-01");
if test_date is not None:
print 'allocated test_date';
test_date_string = dateToString(test_date);
print test_date_string
#Deallocate.
test_date = deallocateDate(test_date);
if test_date is None:
print 'deallocated test_time'
print '\n\n test time interface:'
# test time interface
test_time = newTime("12:13:49.654");
if test_time is not None:
print 'allocated test_time'
test_time_string = timeToString(test_time);
print test_time_string;
test_time = deallocateTime(test_time);
if test_time is None:
print 'deallocated test_time'
print '\n\n#test datetime and timeddelta interface. Simulating a dummy timer.'
#test datetime and timeddelta interface. Simulating a dummy timer.
start_date = newDateTime("2012-09-01T02:10:00.000");
if start_date is not None:
print 'allocated start_date'
start_date_string = datetimeToString(start_date);
print start_date_string;
stop_date = newDateTime("2012-09-10T14:00:00.000");
if stop_date is not None:
print 'allocated stop_date'
stop_date_string = datetimeToString(stop_date);
print stop_date_string;
time_step = newTimeDelta("PT12H");
if time_step is not None:
print 'allocated time_step'
time_step_string = timedeltaToString(time_step);
print time_step_string;
current_date = newDateTime("2012-09-01T02:10:00.000");
if current_date is not None:
print 'allocated current_date'
current_date_string = datetimeToString(current_date);
print current_date_string;
print '\n'
while (compareDatetime(current_date,stop_date) < 0):
print 'Model time loop : ' + datetimeToString(current_date);
current_date = addTimeDeltaToDateTime(current_date,time_step,current_date);
print '\n\n';
deallocateDateTime(start_date)
deallocateDateTime(stop_date)
deallocateDateTime(current_date)
deallocateTimeDelta(time_step)
print '\n\n#Test Event interface.'
#Test Event interface.
#Crate an event group.
outputEventGroup = newEventGroup('output driver');
#Create events and add them to event group.
outputEvent = newEvent('output', '2000-01-01T00:00:00', '2010-01-01T00:00:00', '2013-01-01T00:00:00', 'PT06H');
lret = addNewEventToEventGroup(outputEvent, outputEventGroup);
checkpointEvent = newEvent('checkpoint', '2000-01-01T00:00:00', '2010-01-01T00:00:00', '2013-01-01T00:00:00', 'P05D');
lret = addNewEventToEventGroup(checkpointEvent, outputEventGroup);
restartEvent = newEvent('restart', '2000-01-01T00:00:00', '2010-01-01T00:00:00', '2013-01-01T00:00:00', 'P01M');
lret = addNewEventToEventGroup(restartEvent, outputEventGroup);
#List all events in a group.
print 'Events in outputEventGroup:';
#Start at root of Group.
event_ptr = outputEventGroup.contents.rootEvent;
while (1):
if (event_ptr != None):
#Cast the void pointer to POINTER(_event). This is a HACK beause nextEventInGroup had to be defied as c_void_p (the author could
#not figure out how to create a member element whose type is a pointer to the still being defined class. If you know how to do this,
#please contact the authors).
event_ptr = cast(event_ptr, POINTER(_event));
else:
#No more events in group.
break;
#Do something with the event.
print eventToString(event_ptr);
#Go to next node in the group.
event_ptr = event_ptr.contents.nextEventInGroup;
#Notice that removing checkpointEvent from the group will automatically free the event. You MUST NOT try to free the event using deallocateEvent(.).
removeEventFromEventGroup("checkpoint", outputEventGroup);
#Deallocate event group.
deallocateEventGroup(outputEventGroup);
#Check Events active?
print '\n\nCheck if any event is currently active.'
#Create an event group and add events to it.
SomeEventGroup = newEventGroup('SomeEventGroup');
Newton = newEvent('Fisher', '2000-01-01T00:00:00', '2010-01-01T00:00:00', '2015-01-01T00:00:00', 'P06M');
addNewEventToEventGroup(Newton, SomeEventGroup);
Einstein = newEvent('Pearson', '2000-01-01T00:00:00', '2010-01-01T00:00:00', '2014-01-01T00:00:00', 'P03M');
addNewEventToEventGroup(Einstein, SomeEventGroup);
Feynman = newEvent('Cox', '2000-01-01T00:00:00', '2010-01-01T00:00:00', '2013-01-01T00:00:00', 'P01Y');
addNewEventToEventGroup(Feynman, SomeEventGroup);
#Simulate a clock.
dummy_current_time_step = newTimeDelta("P01M");
dummy_current_date = newDateTime("2009-09-01T00:00:00.000");
dummy_stop_date = newDateTime("2016-10-01T00:00:00.000");
#Timer.
while (compareDatetime(dummy_current_date,dummy_stop_date) < 0):
#Start at root of Group.
event_ptr = SomeEventGroup.contents.rootEvent;
#Loop over all events in an event group.
while (1):
if (event_ptr != None):
event_ptr = cast(event_ptr, POINTER(_event));
else:
break;
#If this event is active, do something about it.
if (isCurrentEventActive(event_ptr,dummy_current_date)):
print eventToString(event_ptr) + ' is active';
#Go to next node in the group.
event_ptr = event_ptr.contents.nextEventInGroup;
print 'Model time loop : ' + datetimeToString(dummy_current_date);
dummy_current_date = addTimeDeltaToDateTime(dummy_current_date,dummy_current_time_step,dummy_current_date);
'''
#TODO: Could not do this. Follow up.
#Test the overloaded operators.
print dt > dtt;
print dt < dtt;
print dt <= dt;
print dt >= dtt;
print dt == dt;
print dtt != dt;
print dtt != dtt;
'''
#Do before exit.
#TODO: Clenup data structures.
resetCalendar();
# Copyright (c) 2013-2024 MPI-M, Luis Kornblueh, Rahul Sinha and DWD, Florian Prill. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
from mtime import *
print('\n\nsetup calendar:')
setCalendar(CALENDAR_TYPE.proleptic_gregorian)
# setCalendar(CALENDAR_TYPE.year_of_365_days)
# setCalendar(CALENDAR_TYPE.year_of_360_days)
# Check the current calendar.
calendar_in_use = calendarToString()
print(calendar_in_use)
print('\n\ntest date interface:')
test_date = Date("2012-09-01")
print(test_date)
print('\n\ntest time interface:')
test_time = Time("12:13:49.654")
print(test_time)
print('\n\ntest datetime and timeddelta interface. Simulating a dummy timer.')
start_date = DateTime("2012-09-01T02:10:00.000")
print(start_date)
stop_date = DateTime("2012-09-10T14:00:00.000")
print(stop_date)
time_step = TimeDelta("PT12H")
print(time_step)
current_date = DateTime("2012-09-01T02:10:00.000")
print(current_date)
print('\n')
while current_date < stop_date:
print('Model time loop : ' + str(current_date))
current_date += time_step
print('\n\n')
# Copyright (c) 2013-2024 MPI-M, Luis Kornblueh, Rahul Sinha and DWD, Florian Prill. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
from ctypes import *
from libmtime import *
####################################################################
# TEST for calendar.
name = create_string_buffer(" ",max_calendar_str_len);
setCalendar(CALENDAR_TYPE.proleptic_gregorian);
CalType = getCalendarType();
print CalType.cType;
calendarToString(name);
print name.value;
'''
CalType = getCalendarType();
print CalType.cType;
print 'Hello World'
freeCalendar();
calendarToString(name);
print name.value;
'''
################################################
# Test for julian day.
jd = newJulianDay(100,100000);
print jd.contents.day;
print jd.contents.ms;
print '--------------------'
name = create_string_buffer(" ",max_julianday_str_len);
val = juliandayToString(jd,name);
print name.value;
print val;
deallocateJulianDay(jd);
print jd.contents.day;
print jd.contents.ms;
#####################################################################
# Test for date.
d = newDate("2099-07-01");
name = create_string_buffer(" ",max_date_str_len);
print 'HELLLLLLLOO'
dateToString(d,name);
print name.value;
'''
dd = newRawDate(1990,11,11);
name_ = create_string_buffer(" ",100);
dateToString(dd,name_);
print name_.value;
ddd = constructAndCopyDate(d);
name__ = create_string_buffer(" ",100);
dateToString(ddd,name__);
print name__.value;
c = compareDate(d,dd);
print c;
dd = replaceDate(d,dd);
name____ = create_string_buffer(" ",100);
dateToString(dd,name____);
print name____.value;
deallocateDate(ddd);
name___ = create_string_buffer(" ",100);
dateToString(ddd,name___);
print name___.value;
'''
#####################################################################
# Test for Time.
'''
t = newTime("01:01:01.009");
name_ = create_string_buffer(" ",100);
timeToString(t,name_);
print name_.value;
tt = newRawTime(12,12,12,999);
name = create_string_buffer(" ",100);
timeToString(tt,name);
print name.value;
ttt = constructAndCopyTime(tt);
name__ = create_string_buffer(" ",100);
timeToString(ttt,name__);
print name__.value;
deallocateTime(ttt);
name___ = create_string_buffer(" ",100);
timeToString(ttt,name___);
print name___.value;
t = replaceTime(tt,t);
name____ = create_string_buffer(" ",100);
timeToString(t,name____);
print name____.value;
'''
#####################
#Test for DateTime
dt = newdatetimefromstring("0-01-01T12:00:00.000");
name = create_string_buffer(" ",100);
datetimeToString(dt,name);
print name.value;
dtt = newdatetimefromraw(2020,12,12,10,01,01,07);
name_ = create_string_buffer(" ",100);
datetimeToString(dtt,name_);
print name_.value;
print 'qqqqqqqqqqqqq'
print datetime_gt(dtt,dtt);
dttt = newdatetimefromconstructandcopy(dt);
name__ = create_string_buffer(" ",100);
datetimeToString(dttt,name__);
print name__.value;
deallocateDateTime(dttt);
name___ = create_string_buffer(" ",100);
datetimeToString(dttt,name___);
print name___.value;
c = compareDatetime(dtt,dtt);
print c;
cc = getNoOfDaysInMonthDateTime(dtt);
print cc;
cc = getNoOfDaysInYearDateTime(dtt);
print cc;
cc = getDayOfYearFromDateTime(dtt);
cc = getDayOfYearFromDateTime(dtt);
print cc;
jd = newJulianDay(0,0);
jd = getJulianDayFromDateTime(dt,jd);
name_____ = create_string_buffer(" ",100);
juliandayToString(jd,name_____);
print name_____.value;
print dt == dt;
#replaceDatetime(dtt,dt);
dt = dtt;
name____ = create_string_buffer(" ",100);
datetimeToString(dt,name____);
print name____.value;
####################################################################
#Test timedelta.
'''
td = newTimeDelta("PT10S");
name = create_string_buffer(" ",100);
timedeltaToString(td,name);
print name.value;
dt = newDateTime("0-01-01T12:00:00.000");
dt_ = newDateTime("0-01-01T00:00:00.000");
dt_ = addTimeDeltaToDateTime(dt,td,dt_);
name_ = create_string_buffer(" ",100);
datetimeToString(dt_,name_);
print name_.value;
deallocateTimeDelta(td);
name__ = create_string_buffer(" ",100);
timedeltaToString(td,name__);
print name__.value;
'''
####################################################################
# Test Event.
e = newEvent("eventCleanup1", "2000-01-01T00:00:00", "2010-01-01T00:00:00", "2013-01-01T00:00:00", "P01M");
name = create_string_buffer(" ",100);
eventToString(e,name);
print name.value;
'''
deallocateEvent(e);
name_ = create_string_buffer(" ",100);
eventToString(e,name_);
print name_.value;
'''
#####################################################################
#Test eventgroup.
'''
eg = newEventGroup("CleanupEventGroup");
c = addNewEventToEventGroup(e,eg);
print c;
cc = removeEventFromEventGroup("eventCleanup1", eg);
print cc;
deallocateEventGroup(eg);
'''
resetCalendar();
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment