Add properties for time and date to cell

This commit is contained in:
Mauricio Baeza 2020-10-01 16:03:13 -05:00
parent 6e101413b9
commit 524eb06749
1 changed files with 54 additions and 0 deletions

View File

@ -26,7 +26,9 @@ import gettext
import logging import logging
import os import os
import platform import platform
import re
import shlex import shlex
import shutil
import socket import socket
import subprocess import subprocess
import sys import sys
@ -1094,6 +1096,29 @@ class LOCalcRange(object):
d = (data.hour * 3600 + data.minute * 60 + data.second) / SECONDS_DAY d = (data.hour * 3600 + data.minute * 60 + data.second) / SECONDS_DAY
self.obj.setValue(d) self.obj.setValue(d)
@property
def date(self):
value = int(self.obj.Value)
date = datetime.date.fromordinal(value + DATE_OFFSET)
return date
@property
def time(self):
value = self.obj.Value - int(self.obj.Value)
h = 24 * value
hours = int(h)
m = round((h - hours) * 60, 6)
minutes = int(m)
s = (m - minutes) * 60
seconds = int(s)
ms = int(round((s - seconds), 6) * 1_000_000)
time = datetime.time(hours, minutes, seconds, ms)
return time
@property
def datetime(self):
return datetime.datetime.combine(self.date, self.time)
@property @property
def data(self): def data(self):
return self.obj.getDataArray() return self.obj.getDataArray()
@ -2549,6 +2574,10 @@ class Paths(object):
def ext(self): def ext(self):
return self._path.suffix return self._path.suffix
@property
def info(self):
return self.path, self.file_name, self.name, self.ext
@property @property
def url(self): def url(self):
return self._path.as_uri() return self._path.as_uri()
@ -2590,6 +2619,31 @@ class Paths(object):
if path.startswith('file://'): if path.startswith('file://'):
path = str(Path(uno.fileUrlToSystemPath(path)).resolve()) path = str(Path(uno.fileUrlToSystemPath(path)).resolve())
return path return path
@classmethod
def walk(cls, path, filters=''):
paths = []
if filters in ('*', '*.*'):
filters = ''
for folder, _, files in os.walk(path):
if filters:
pattern = re.compile(r'\.(?:{})$'.format(filters), re.IGNORECASE)
paths += [cls.join(folder, f) for f in files if pattern.search(f)]
else:
paths += files
return paths
@classmethod
def copy(cls, source, target='', name=''):
p, f, n, e = _P(source).info
if target:
p = target
if name:
e = ''
n = name
path_new = cls.join(p, f'{n}{e}')
shutil.copy(source, path_new)
return path_new
_P = Paths _P = Paths