[WinUpdatesManager] init commit, this project previously named GetUpdatesViaWeb in old repository.
At test folder provide dates test sample.
For proper run test please make sure that PYTHONPATH include the root directory of this project.
Also add the NINJA-IDE project file.
[WinUpdatesManager] add attributes for main file, like from command prompt and check is this realy start instent not import.
In this commit real work commented.
[WinUpdatesManager] add new test file, in early present add new test case.
Reformate of main/updates, formating code style in others files.
[WinUpdatesManager] more checking getUpdatesInfoFromPackage: now for unknown files JSON return full path.
Also this is no class point commit, have plane to make "update" class, instent of serries of separate funcion.
That may will help when db will present. Lets see...
[WinUpdatesManager] added class (very simple, it almost struct, but have the methods).
Also planned to use mock testing and data.py now do not add be,
because it may be change to another file and way of using.
[WinUpdatesManager] add implemention of work with MongoDB (this is NoSQL DataBase): getFromDB/insertToDB/deleteFromDB
At update.py add Date to the ToJSON, but that method will be rewritten during different it's output from true JSON document.
[WinUpdatesManager] update code style in 'updates.py' (set 'm' to the names of class filed).
Rewrite toJSON and toWinDirStyle (only serilizate data and no to decide how to manupulate).
Add manupulation of path and kb at update class via getPathWithOutRoot(), getShortName(), getRootOfFullName(self).
'Overide' __str__ that simple to the .NET/JAVA toString()
At mongoDB.py update style.
Update for using in datesTest: no nead to separate 'i' for enumerate to things.
Add huge test at updatesTest.py and also update for using.
[Updates] actualization date set.
In main clean up and ziping loops.
[WinUpdatesManager] updated dates.getDatesOfUpdates algorithm for allow date in folder like MMYY-X
At dirs provided class Paths so now walkin on file system (FS) will be only when need to create this class.
So after changes in dirs no need to provide getSubDirectoryOnly and in main call other separate walk on FS.
At main getYearUpdates remove during to it small size and integrate in argc == 2 it functional.
Provided dirsTest.
At updates toWinDirStyle and later at JSON I think we have a situation with date data type:
no concasting with string (temporary resolved for toWinDirStyle).
So in future commit it must be resolved depends on required output type.
[WinUpdatesManager] date at update now have check via try
what type of data setting and what we need to output win toWinDirStyle
getKB now do not consist KB at answer.
Update test of update for new consist.
[WinUpdatesManager] getKB return int.
Added mondoDB_Test, correcting work with DB in mongoDB.
[WinUpdatesManager] implement dictionary oriented class Updates (instead of Update with toJSON method).
toWinDirStyle now a function at updates package, getRootOfFullName and getShortName integrated to this function.
getPathWithOutRoot removed.
getDate renamed to dateToWinDirStyle
At getOsType formating text string of CPU architectures.
getUpdatesInfoFromPackage ranamed to getUpdatesFromPackage, original getUpdatesFromPackage removed.
getUpdatesSerriesSeparate removed

At db.mongoDB implement few new function and update early present for dictionary oriented class Updates
(actually previouse raw data, that the same like from DB getted data).
updateInDB method not covered yet.

main updated for using new class Updates.

Update mongoDB_test

Update updatesTest: in future commit we change the detecting of version and method will return only one version,
no multi. That because one file multiple times set with different version.
[WinUpdatesManager] change the version detection method.
Similar change for other methods: getOsType and getLanguage.
Rewrite getKBsFromReport and implemented test for this method.
Some cleans and impovements for test_UpdateClass: check for no
twice update added and more linear checking of reference values.
[mongoDB_Test] covere update in DB.
Realization of test not so good for production because iteration
of items on app side not on DB. For some complexity can not do iteration change
with out separate variable updates = [], some DB cursor process prevent to do that.
[Package] added __init__.py to roots of packages,
(this required by both of Pythons - 2.x/3.x on Ubuntu).
Somethink prompt to me that Python2.x on Windows too
now be avalible to run scripts.
Before this commit only Python3.x on Windows can be run
this scrips.
Don't forget to add to PYTHONPATH path to project:
[Windows] set PYTHONPATH=%PYTHONPATH%;\path\to\lib\
[Ubuntu] export PYTHONPATH="$PYTHONPATH:/path/to/lib/"
[UpdateTest] since run on Ubuntu have problem with mongoDB_test
but actually the problem at Python 2.x while iteration update list.
Thay say 'instance has no next() method', well __next__ from Python 3.x
do not see at Python2.x. So test write more coverage for update to see
that both version of Python pass it. Actually python 2.x do not pass update test.
Update NINJA-IDE project file - license condition update and clean up of absolute paths.
Some code cleaning at mongoDB_Test.
[Updates] add compatibility for Python 2.x: next redirected to __next__.
[tests] increese test cover.
[Cross-platform] remove almost in all places Windows path separator '\\'
and use instead the Python cross-platform variable - os.sep
[Versions] implement new class: storing and detecting version,
so early avalible function for detect version do nor nead now.