Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified AdjustDate.py
100755 → 100644
Empty file.
Empty file modified CompareDBs.py
100755 → 100644
Empty file.
Empty file modified DeleteAllData.py
100755 → 100644
Empty file.
Empty file modified DenormaliseDB.py
100755 → 100644
Empty file.
Empty file modified DropItemForeignKeys.py
100755 → 100644
Empty file.
Empty file modified NVPX2RQDA.py
100755 → 100644
Empty file.
Empty file modified NVivo database structure notes.txt
100755 → 100644
Empty file.
14 changes: 8 additions & 6 deletions NVivo.py
Original file line number Diff line number Diff line change
Expand Up @@ -661,8 +661,10 @@ def Normalise(args):
nvivoBlobStorage.c.Object if nvivoBlobStorage is not None else nvivoSource.c.Object,
nvivoSource.c.PlainText,
nvivoSource.c.MetaData,
nvivoSource.c.ThumbnailLocation if args.nvivoversion == '12' else nvivoSource.c.Thumbnail,
nvivoSource.c.WaveformLocation if args.nvivoversion == '12' else nvivoSource.c.Waveform,
# nvivoSource.c.ThumbnailLocation if args.nvivoversion in '12' else nvivoSource.c.Thumbnail,
nvivoSource.c.Thumbnail,
# nvivoSource.c.WaveformLocation if args.nvivoversion == '12' else nvivoSource.c.Waveform,
nvivoSource.c.Waveform,
nvivoItem.c.TypeId.label('SourceType'),
nvivoItem.c.CreatedBy,
nvivoItem.c.CreatedDate,
Expand Down Expand Up @@ -845,7 +847,7 @@ def build_tagging_or_annotation(item):
if item['StartX'] is not None and item['LengthX'] is not None:
item['Fragment'] += str(item['StartX']+1) + ':' + str(item['StartX'] + item['LengthX']);
if item['StartY'] is not None:
item['Fragment'] += ',' + str(item['StartY']+1)
item['Fragment'] += ',' + str(item['StartY'])
if item['LengthY'] > 0:
item['Fragment'] += ':' + str(item['StartY'] + item['LengthY'])

Expand Down Expand Up @@ -879,7 +881,7 @@ def build_tagging_or_annotation(item):
#nvivoNodeReference.c.ReferenceTypeId == literal_column('0'),
nvivoItem.c.Id == nvivoNodeReference.c.Node_Item_Id,
nvivoItem.c.TypeId == literal_column(NVivo.ItemType.Node),
nvivoNodeReference.c.StartZ.is_(None)
#nvivoNodeReference.c.StartZ.is_(None)
)))]
for tagging in taggings:
build_tagging_or_annotation(tagging)
Expand All @@ -901,13 +903,13 @@ def build_tagging_or_annotation(item):
nvivoAnnotation.c.CreatedDate,
nvivoAnnotation.c.ModifiedBy,
nvivoAnnotation.c.ModifiedDate
] + [
] + ([
nvivoAnnotation.c.StartText,
nvivoAnnotation.c.LengthText
] if args.mac else [
nvivoAnnotation.c.StartX,
nvivoAnnotation.c.LengthX
]))]
])))]

for annotation in annotations:
annotation['Node'] = None
Expand Down
Empty file modified NVivo2RQDADB.py
100755 → 100644
Empty file.
Empty file modified Norm2RQDA.py
100755 → 100644
Empty file.
Empty file modified NormaliseDB.py
100755 → 100644
Empty file.
24 changes: 18 additions & 6 deletions NormaliseNVP.py
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,17 @@ def NormaliseNVP(arglist):

parser.add_argument('-v', '--verbosity', type=int, default=1)

parser.add_argument('-nv', '--nvivoversion', choices=["10", "11"], default="10",
help='NVivo version (10 or 11)')
parser.add_argument('-nv', '--nvivoversion', choices=["10", "11", "12"], default="10",
help='NVivo version (10 or 11 or 12)')

parser.add_argument('-S', '--server', type=str,
help="IP address/name of Microsoft SQL Server")
parser.add_argument('-P', '--port', type=int,
help="Port of Microsoft SQL Server")
parser.add_argument('-i', '--instance', type=str,
help="Microsoft SQL Server instance")
parser.add_argument('-d', '--drop', choices=["keep", "drop"], default="drop",
help='Drop attached NVivo SQL Server Database')

parser.add_argument('-u', '--users', choices=["skip", "merge", "overwrite", "replace"], default="merge",
help='User action.')
Expand Down Expand Up @@ -98,7 +100,7 @@ def executecommand(command):
instanceversion = regquerydata[2].split('.')[0]
if args.verbosity >= 2:
print("Found SQL server instance " + instancename + " version " + instanceversion, file=sys.stderr)
if (args.nvivoversion == '10' and instanceversion == 'MSSQL10_50') or (args.nvivoversion == '11' and instanceversion == 'MSSQL12'):
if (args.nvivoversion == '10' and instanceversion == 'MSSQL10_50') or (args.nvivoversion == '11' and instanceversion == 'MSSQL12') or (args.nvivoversion == '12' and instanceversion == 'MSSQL14'):
args.instance = instancename
break
else:
Expand All @@ -114,14 +116,20 @@ def executecommand(command):
if args.verbosity > 0:
print("Using port: " + str(args.port), file=sys.stderr)

if args.nvivoversion == '11':
version = 'MSSQL12'
elif args.nvivoversion == '12':
version = 'MSSQL14'
else:
version = 'MSQL10_50'
mssqlapi = mssqlAPI(args.server,
args.port,
args.instance,
version = ('MSSQL12' if args.nvivoversion == '11' else 'MSSQL10_50'),
version = version,
verbosity = args.verbosity)

# Get reasonably distinct yet recognisable DB name
dbname = 'nvivo' + str(os.getpid())
dbname = 'nvivo' + str(os.getpid()) + '_' + args.infile.rsplit('\\', 1)[-1].rsplit('/', 1)[-1].rsplit('.', 1)[0].strip()

mssqlapi.attach(args.infile, dbname)
try:
Expand All @@ -136,7 +144,11 @@ def executecommand(command):
raise

finally:
mssqlapi.drop(dbname)
if args.drop == 'drop':
mssqlapi.drop(dbname)
print(f"Drop database {dbname}")
else:
print(f"Keep database {dbname}")

if __name__ == '__main__':
NormaliseNVP(None)
Empty file modified NormaliseNVPX.py
100755 → 100644
Empty file.
Empty file modified NormaliseOpenQDA.py
100755 → 100644
Empty file.
Empty file modified RQDA2NVPX.py
100755 → 100644
Empty file.
Empty file modified RQDA2NVivoDB.py
100755 → 100644
Empty file.
Empty file modified RQDA2Norm.py
100755 → 100644
Empty file.
Empty file modified Subtract.py
100755 → 100644
Empty file.
Empty file modified Translate.py
100755 → 100644
Empty file.
Empty file modified editNode.py
100755 → 100644
Empty file.
Empty file modified editNodeAttribute.py
100755 → 100644
Empty file.
Empty file modified editNodeCategory.py
100755 → 100644
Empty file.
Empty file modified editProject.py
100755 → 100644
Empty file.
Empty file modified editSource.py
100755 → 100644
Empty file.
Empty file modified editSourceAttribute.py
100755 → 100644
Empty file.
Empty file modified editSourceCategory.py
100755 → 100644
Empty file.
Empty file modified editTagging.py
100755 → 100644
Empty file.
Empty file modified editUser.py
100755 → 100644
Empty file.
Empty file modified extractTagging.py
100755 → 100644
Empty file.
Empty file modified helpers/mssqlAttach.bat
100755 → 100644
Empty file.
Empty file modified helpers/mssqlCreate.bat
100755 → 100644
Empty file.
Empty file modified helpers/mssqlSave.bat
100755 → 100644
Empty file.
Empty file modified helpers/sqlanyenv.sh
100755 → 100644
Empty file.
Empty file modified helpers/sqlanysrv.sh
100755 → 100644
Empty file.
Empty file modified helpers/unoconv
100755 → 100644
Empty file.
Empty file modified mssqlAttach.py
100755 → 100644
Empty file.
Empty file modified mssqlCreate.py
100755 → 100644
Empty file.
Empty file modified mssqlDrop.py
100755 → 100644
Empty file.
Empty file modified mssqlList.py
100755 → 100644
Empty file.
Empty file modified mssqlSave.py
100755 → 100644
Empty file.
Empty file modified nvpn2bqda.py
100755 → 100644
Empty file.
Empty file modified nvpn2nvp.py
100755 → 100644
Empty file.
Empty file modified nvpn2nvpx.py
100755 → 100644
Empty file.
Empty file modified querySource.py
100755 → 100644
Empty file.
Empty file modified queryTagging.py
100755 → 100644
Empty file.
Empty file modified regressionTest.sh
100755 → 100644
Empty file.
Empty file modified saveSources.py
100755 → 100644
Empty file.
Empty file modified tagNounPhrases.py
100755 → 100644
Empty file.
Empty file modified tagSpeakers.py
100755 → 100644
Empty file.