commit
02f38da1a6
10 changed files with 360 additions and 0 deletions
@ -0,0 +1,7 @@ |
|||||||
|
.* |
||||||
|
bin/* |
||||||
|
dist/* |
||||||
|
build/* |
||||||
|
*.pyc |
||||||
|
src/*.egg-info/* |
||||||
|
|
||||||
@ -0,0 +1,70 @@ |
|||||||
|
#!/usr/bin/env python |
||||||
|
# -*- encoding: utf-8 -*- |
||||||
|
from __future__ import absolute_import |
||||||
|
from __future__ import print_function |
||||||
|
|
||||||
|
import io |
||||||
|
import re |
||||||
|
from glob import glob |
||||||
|
from os.path import basename |
||||||
|
from os.path import dirname |
||||||
|
from os.path import join |
||||||
|
from os.path import splitext |
||||||
|
|
||||||
|
from setuptools import find_packages |
||||||
|
from setuptools import setup |
||||||
|
|
||||||
|
|
||||||
|
def read(*names, **kwargs): |
||||||
|
return io.open( |
||||||
|
join(dirname(__file__), *names), |
||||||
|
encoding=kwargs.get('encoding', 'utf8') |
||||||
|
).read() |
||||||
|
|
||||||
|
|
||||||
|
setup( |
||||||
|
name='nailab', |
||||||
|
version='0.1.0', |
||||||
|
license='BSD 2-Clause License', |
||||||
|
description='Naiback lab', |
||||||
|
long_description='%s\n%s' % ( |
||||||
|
re.compile('^.. start-badges.*^.. end-badges', re.M | re.S).sub('', read('README.rst')), |
||||||
|
re.sub(':[a-z]+:`~?(.*?)`', r'``\1``', read('CHANGELOG.rst')) |
||||||
|
), |
||||||
|
author='Denis Tereshkin', |
||||||
|
author_email='denis@kasan.ws', |
||||||
|
url='https://github.com/asakul/nailab', |
||||||
|
packages=find_packages('src'), |
||||||
|
package_dir={'': 'src'}, |
||||||
|
py_modules=[splitext(basename(path))[0] for path in glob('src/*.py')], |
||||||
|
include_package_data=True, |
||||||
|
zip_safe=False, |
||||||
|
classifiers=[ |
||||||
|
# complete classifier list: http://pypi.python.org/pypi?%3Aaction=list_classifiers |
||||||
|
'Development Status :: 1 - Planning', |
||||||
|
'Intended Audience :: Financial and Insurance Industry', |
||||||
|
'License :: OSI Approved :: MIT License', |
||||||
|
'Operating System :: Unix', |
||||||
|
'Operating System :: POSIX', |
||||||
|
'Operating System :: Microsoft :: Windows', |
||||||
|
'Programming Language :: Python', |
||||||
|
'Programming Language :: Python :: 3', |
||||||
|
'Programming Language :: Python :: 3.3', |
||||||
|
'Programming Language :: Python :: 3.4', |
||||||
|
'Programming Language :: Python :: 3.5', |
||||||
|
'Programming Language :: Python :: 3.6', |
||||||
|
'Programming Language :: Python :: Implementation :: CPython', |
||||||
|
'Programming Language :: Python :: Implementation :: PyPy', |
||||||
|
'Topic :: Office/Business :: Financial' |
||||||
|
], |
||||||
|
keywords=[ |
||||||
|
'backtesting' |
||||||
|
], |
||||||
|
install_requires=[ |
||||||
|
'naiback' |
||||||
|
], |
||||||
|
extras_require={ |
||||||
|
}, |
||||||
|
entry_points={ |
||||||
|
}, |
||||||
|
) |
||||||
@ -0,0 +1,25 @@ |
|||||||
|
|
||||||
|
from nailab.data.datasource import DataSource |
||||||
|
|
||||||
|
import glob |
||||||
|
import os |
||||||
|
|
||||||
|
class CsvFolderDataSource(DataSource): |
||||||
|
|
||||||
|
def __init__(self, name, path): |
||||||
|
super().__init__(name) |
||||||
|
|
||||||
|
self.path = path |
||||||
|
self._discover_feeds() |
||||||
|
self.feeds = [] |
||||||
|
|
||||||
|
def available_feeds(self): |
||||||
|
return self.feeds |
||||||
|
|
||||||
|
def get_feed(self, feed_id): |
||||||
|
pass |
||||||
|
|
||||||
|
def _discover_feeds(self): |
||||||
|
files = glob.glob(self.path + '/*.csv') |
||||||
|
self.feeds = [os.path.basename(f) for f in files] |
||||||
|
|
||||||
@ -0,0 +1,11 @@ |
|||||||
|
|
||||||
|
class DataSource: |
||||||
|
|
||||||
|
def __init__(self, name): |
||||||
|
self.name = name |
||||||
|
|
||||||
|
def available_feeds(self): |
||||||
|
pass |
||||||
|
|
||||||
|
def get_feed(self, feed_id): |
||||||
|
pass |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
|
||||||
|
import gi |
||||||
|
gi.require_version('Gtk', '3.0') |
||||||
|
gi.require_version('GtkSource', '3.0') |
||||||
|
from gi.repository import Gtk, GObject |
||||||
|
from gi.repository import GtkSource |
||||||
|
|
||||||
|
from ui.applicationwindow import ApplicationWindow |
||||||
|
|
||||||
|
def main(): |
||||||
|
GObject.type_register(GtkSource.View) |
||||||
|
|
||||||
|
builder = Gtk.Builder() |
||||||
|
builder.add_from_file('ui/nailab.glade') |
||||||
|
|
||||||
|
ApplicationWindow(builder) |
||||||
|
|
||||||
|
Gtk.main() |
||||||
|
|
||||||
|
if __name__ == '__main__': |
||||||
|
main() |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
|
||||||
|
from gi.repository import Gtk, GtkSource |
||||||
|
|
||||||
|
class ApplicationWindow: |
||||||
|
|
||||||
|
def __init__(self, builder): |
||||||
|
self.window = builder.get_object('ApplicationWindow') |
||||||
|
manager = GtkSource.LanguageManager() |
||||||
|
buf = GtkSource.Buffer() |
||||||
|
buf.set_language(manager.get_language('python')) |
||||||
|
sv = builder.get_object('sourceview') |
||||||
|
sv.set_buffer(buf) |
||||||
|
sv.set_monospace(True) |
||||||
|
|
||||||
|
handlers = { |
||||||
|
'on_ApplicationWindow_delete_event' : Gtk.main_quit |
||||||
|
} |
||||||
|
|
||||||
|
builder.connect_signals(handlers) |
||||||
|
self.window.show_all() |
||||||
|
|
||||||
@ -0,0 +1,205 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<!-- Generated with glade 3.18.3 --> |
||||||
|
<interface> |
||||||
|
<requires lib="gtk+" version="3.0"/> |
||||||
|
<requires lib="gtksourceview" version="3.0"/> |
||||||
|
<object class="GtkListStore" id="model_dataSources"/> |
||||||
|
<object class="GtkTextTagTable" id="texttagtable"> |
||||||
|
<child type="tag"> |
||||||
|
<object class="GtkTextTag" id="default"> |
||||||
|
<property name="font">Normal</property> |
||||||
|
<property name="family">monospace</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
</object> |
||||||
|
<object class="GtkTextBuffer" id="textbuffer"> |
||||||
|
<property name="tag_table">texttagtable</property> |
||||||
|
<property name="text" translatable="yes"><default>foo</default></property> |
||||||
|
</object> |
||||||
|
<object class="GtkApplicationWindow" id="ApplicationWindow"> |
||||||
|
<property name="width_request">1024</property> |
||||||
|
<property name="height_request">768</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="margin_bottom">2</property> |
||||||
|
<signal name="delete-event" handler="on_ApplicationWindow_delete_event" swapped="no"/> |
||||||
|
<child> |
||||||
|
<object class="GtkFrame" id="frame1"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="label_xalign">0</property> |
||||||
|
<property name="shadow_type">none</property> |
||||||
|
<child> |
||||||
|
<object class="GtkPaned" id="paned1"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">True</property> |
||||||
|
<property name="position">200</property> |
||||||
|
<property name="position_set">True</property> |
||||||
|
<child> |
||||||
|
<object class="GtkTreeView" id="tv_datasources"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">True</property> |
||||||
|
<property name="model">model_dataSources</property> |
||||||
|
<child internal-child="selection"> |
||||||
|
<object class="GtkTreeSelection" id="treeview-selection1"/> |
||||||
|
</child> |
||||||
|
</object> |
||||||
|
<packing> |
||||||
|
<property name="resize">False</property> |
||||||
|
<property name="shrink">True</property> |
||||||
|
</packing> |
||||||
|
</child> |
||||||
|
<child> |
||||||
|
<object class="GtkSourceView" id="sourceview"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">True</property> |
||||||
|
<property name="wrap_mode">word-char</property> |
||||||
|
<property name="buffer">textbuffer</property> |
||||||
|
<property name="monospace">True</property> |
||||||
|
<property name="show_line_numbers">True</property> |
||||||
|
<property name="show_line_marks">True</property> |
||||||
|
<property name="tab_width">4</property> |
||||||
|
<property name="auto_indent">True</property> |
||||||
|
<property name="insert_spaces_instead_of_tabs">True</property> |
||||||
|
<property name="highlight_current_line">True</property> |
||||||
|
<property name="smart_backspace">True</property> |
||||||
|
</object> |
||||||
|
<packing> |
||||||
|
<property name="resize">True</property> |
||||||
|
<property name="shrink">True</property> |
||||||
|
</packing> |
||||||
|
</child> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
<child type="label"> |
||||||
|
<object class="GtkMenuBar" id="menubar3"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<child> |
||||||
|
<object class="GtkMenuItem" id="menuitem9"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="label" translatable="yes">_Файл</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
<child type="submenu"> |
||||||
|
<object class="GtkMenu" id="menu7"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<child> |
||||||
|
<object class="GtkImageMenuItem" id="imagemenuitem21"> |
||||||
|
<property name="label">gtk-new</property> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
<property name="use_stock">True</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
<child> |
||||||
|
<object class="GtkImageMenuItem" id="imagemenuitem22"> |
||||||
|
<property name="label">gtk-open</property> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
<property name="use_stock">True</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
<child> |
||||||
|
<object class="GtkImageMenuItem" id="imagemenuitem23"> |
||||||
|
<property name="label">gtk-save</property> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
<property name="use_stock">True</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
<child> |
||||||
|
<object class="GtkImageMenuItem" id="imagemenuitem24"> |
||||||
|
<property name="label">gtk-save-as</property> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
<property name="use_stock">True</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
<child> |
||||||
|
<object class="GtkSeparatorMenuItem" id="separatormenuitem3"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
<child> |
||||||
|
<object class="GtkImageMenuItem" id="imagemenuitem25"> |
||||||
|
<property name="label">gtk-quit</property> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
<property name="use_stock">True</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
<child> |
||||||
|
<object class="GtkMenuItem" id="menuitem10"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="label" translatable="yes">_Правка</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
<child type="submenu"> |
||||||
|
<object class="GtkMenu" id="menu8"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<child> |
||||||
|
<object class="GtkImageMenuItem" id="imagemenuitem26"> |
||||||
|
<property name="label">gtk-cut</property> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
<property name="use_stock">True</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
<child> |
||||||
|
<object class="GtkImageMenuItem" id="imagemenuitem27"> |
||||||
|
<property name="label">gtk-copy</property> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
<property name="use_stock">True</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
<child> |
||||||
|
<object class="GtkImageMenuItem" id="imagemenuitem28"> |
||||||
|
<property name="label">gtk-paste</property> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
<property name="use_stock">True</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
<child> |
||||||
|
<object class="GtkImageMenuItem" id="imagemenuitem29"> |
||||||
|
<property name="label">gtk-delete</property> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
<property name="use_stock">True</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
<child> |
||||||
|
<object class="GtkMenuItem" id="menuitem11"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="label" translatable="yes">_Вид</property> |
||||||
|
<property name="use_underline">True</property> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
</object> |
||||||
|
</child> |
||||||
|
</object> |
||||||
|
</interface> |
||||||
Loading…
Reference in new issue