Skip to content

Commit

Permalink
Move groupnode to dt
Browse files Browse the repository at this point in the history
  • Loading branch information
jpn-- committed Jan 18, 2017
1 parent 6e407d3 commit f4ff30a
Show file tree
Hide file tree
Showing 4 changed files with 433 additions and 13 deletions.
30 changes: 19 additions & 11 deletions py/dt/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import pandas
import os
import re
from ..util.groupnode import GroupNode
from .groupnode import GroupNode
from contextlib import contextmanager

class IncompatibleShape(LarchError):
Expand Down Expand Up @@ -1749,8 +1749,16 @@ def CSV_idco(filename, caseid=None, choice=None, weight=None, savename=None, alt
An open :class:`DT` file.
'''
if len(alts)==0:
raise ValueError('alternatives must be given for idco import (a future vresion of larch may relax this requirement)')
raise ValueError('alternatives must be given for idco import (a future version of larch may relax this requirement)')

if not isinstance(alts,dict):
raise TypeError('alts must be a dict of {altcode as int:(altname as str, availcolumn as str[, choicecolumn as str]) tuples')

for altkey,altval in alts.items():
if not isinstance(altkey,int):
raise TypeError('alts must be a dict of {altcode as int:(altname as str, availcolumn as str[, choicecolumn as str]) tuples')
if isinstance(altval,str):
raise TypeError('alts must be a dict of {altcode as int:(altname as str, availcolumn as str[, choicecolumn as str]) tuples')

self = DT(filename=savename, complevel=complevel, complib=complib, **kwargs)
self.import_idco(filename, *csv_args, caseid_column=None, overwrite=overwrite, **csv_kwargs)
Expand Down Expand Up @@ -3459,7 +3467,7 @@ def _representation(self):
elif self.in_vault( 'stack.'+i ):
v_dtypes.append('<stack>')
else:
raise
v_dtypes.append('<error>')
else:
v_dtypes.append(str(_pytables_link_dereference(self.idca[i]).dtype))
v_ftypes.append('idca')
Expand Down Expand Up @@ -3983,7 +3991,7 @@ def export_screen(self, newfile, spool=True):
it = d.idco._v_children[co]
if isinstance(it, _tb.array.Array):
d1.new_idco_from_array(co, d.idco[co][screen])
elif isinstance(it, _tb.group.Group):
elif isinstance(it, (_tb.group.Group,GroupNode)):
co_g = d1.create_group(d1.h5idco, co)
# dupe parts separately, keep soft links
if isinstance(it._index_, _tb.link.SoftLink):
Expand All @@ -4003,7 +4011,7 @@ def export_screen(self, newfile, spool=True):
it = d.idco[co]
if isinstance(it, _tb.array.Array):
d1.new_idco_from_array(co, d.idco[co][screen])
elif isinstance(it, _tb.group.Group):
elif isinstance(it, (_tb.group.Group,GroupNode)):
co_g = d1.create_group(d1.h5idco, co)
# dupe parts separately, drop all links
d1.create_carray(co_g, '_index_', obj=it._index_[screen])
Expand All @@ -4020,7 +4028,7 @@ def export_screen(self, newfile, spool=True):
it = d.idca._v_children[ca]
if isinstance(it, _tb.array.Array):
d1.new_idca_from_array(ca, d.array_idca(ca, dtype=d.idca[ca].dtype))
elif isinstance(it, _tb.group.Group):
elif isinstance(it, (_tb.group.Group,GroupNode)):
ca_g = d1.create_group(d1.h5idca, ca)
# dupe parts separately, keep soft links
try:
Expand Down Expand Up @@ -4050,7 +4058,7 @@ def export_screen(self, newfile, spool=True):
it = d.idca[ca]
if isinstance(it, _tb.array.Array):
d1.new_idca_from_array(ca, d.idca[ca][screen])
elif isinstance(it, _tb.group.Group):
elif isinstance(it, (_tb.group.Group,GroupNode)):
ca_g = d1.create_group(d1.h5idca, ca)
# dupe parts separately, drop all links
try:
Expand Down Expand Up @@ -4114,7 +4122,7 @@ def consolidate(self, newfile, spool=True):
it = d.idco._v_children[co]
if isinstance(it, _tb.array.Array):
d1.new_idco_from_array(co, d.idco[co][:])
elif isinstance(it, _tb.group.Group):
elif isinstance(it, (_tb.group.Group,GroupNode)):
co_g = d1.create_group(d1.h5idco, co)
# dupe parts separately, keep soft links
if isinstance(it._index_, _tb.link.SoftLink):
Expand All @@ -4134,7 +4142,7 @@ def consolidate(self, newfile, spool=True):
it = d.idco[co]
if isinstance(it, _tb.array.Array):
d1.new_idco_from_array(co, d.idco[co][:])
elif isinstance(it, _tb.group.Group):
elif isinstance(it, (_tb.group.Group,GroupNode)):
co_g = d1.create_group(d1.h5idco, co)
# dupe parts separately, drop all links
d1.create_carray(co_g, '_index_', obj=it._index_[:])
Expand All @@ -4146,7 +4154,7 @@ def consolidate(self, newfile, spool=True):
it = d.idca._v_children[ca]
if isinstance(it, _tb.array.Array):
d1.new_idca_from_array(ca, d.idca[ca][:])
elif isinstance(it, _tb.group.Group):
elif isinstance(it, (_tb.group.Group,GroupNode)):
ca_g = d1.create_group(d1.h5idca, ca)
# dupe parts separately, keep soft links
try:
Expand Down Expand Up @@ -4176,7 +4184,7 @@ def consolidate(self, newfile, spool=True):
it = d.idca[ca]
if isinstance(it, _tb.array.Array):
d1.new_idca_from_array(ca, d.idca[ca][:])
elif isinstance(it, _tb.group.Group):
elif isinstance(it, (_tb.group.Group,GroupNode)):
ca_g = d1.create_group(d1.h5idca, ca)
# dupe parts separately, drop all links
try:
Expand Down

0 comments on commit f4ff30a

Please sign in to comment.