From noreply at r-forge.r-project.org Sun Jul 17 18:07:13 2022 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Sun, 17 Jul 2022 18:07:13 +0200 (CEST) Subject: [Stacomir-commits] r614 - in pkg/stacomir: . R data dev dev/config doc inst/examples inst/po inst/po/fr/LC_MESSAGES man man/figures po tests/testthat vignettes www www/images Message-ID: <20220717160713.9FA44183FC4@r-forge.r-project.org> Author: briand Date: 2022-07-17 18:07:12 +0200 (Sun, 17 Jul 2022) New Revision: 614 Added: pkg/stacomir/R/funschema.R pkg/stacomir/dev/config/ pkg/stacomir/dev/config/generate_data.R pkg/stacomir/man/fun_schema.Rd pkg/stacomir/man/plot-report_dc-missing-method.Rd pkg/stacomir/man/plot-report_df-missing-method.Rd pkg/stacomir/po/R-fr.po pkg/stacomir/tests/testthat/test-00-functions.R pkg/stacomir/vignettes/stacomir.html pkg/stacomir/www/ pkg/stacomir/www/images/ pkg/stacomir/www/images/Logo.png pkg/stacomir/www/images/Stations-de-comptage.jpg pkg/stacomir/www/images/icon.png pkg/stacomir/www/images/logo_AFB.png pkg/stacomir/www/images/stacomi.png pkg/stacomir/www/images/stacomi_logo.png pkg/stacomir/www/images/video.png pkg/stacomir/www/index.php pkg/stacomir/www/rssclass.php pkg/stacomir/www/styles.css Removed: pkg/stacomir/inst/po/stacomiR_fr_FR/ pkg/stacomir/man/chargecomplement-methods.Rd pkg/stacomir/man/funbarchartDC.Rd pkg/stacomir/man/funboxplotreport_sample_char.Rd pkg/stacomir/man/fundensityreport_sample_char.Rd pkg/stacomir/man/funpointreport_sample_char.Rd pkg/stacomir/man/funtableDC.Rd pkg/stacomir/man/graphe-methods.Rd pkg/stacomir/man/plot-report_dc-ANY-method.Rd pkg/stacomir/man/plot-report_df-ANY-method.Rd pkg/stacomir/man/quitte.Rd pkg/stacomir/man/stacomiR-package.Rd pkg/stacomir/po/R-stacomiR_fr_FR.mo pkg/stacomir/po/R-stacomiR_fr_FR.po pkg/stacomir/tests/testthat/test-50-spell_checking.R Modified: pkg/stacomir/ pkg/stacomir/DESCRIPTION pkg/stacomir/NAMESPACE pkg/stacomir/NEWS.md pkg/stacomir/R/create_generic.R pkg/stacomir/R/fun_table_per_dis.R pkg/stacomir/R/fun_write_monthly.R pkg/stacomir/R/fungraph.R pkg/stacomir/R/fungraph_glasseel.R pkg/stacomir/R/funstat.R pkg/stacomir/R/funtable.R pkg/stacomir/R/ref_choice.R pkg/stacomir/R/ref_coe.R pkg/stacomir/R/ref_dc.R pkg/stacomir/R/ref_df.R pkg/stacomir/R/ref_env.R pkg/stacomir/R/ref_horodate.R pkg/stacomir/R/ref_list.R pkg/stacomir/R/ref_par.R pkg/stacomir/R/ref_parqual.R pkg/stacomir/R/ref_parquan.R pkg/stacomir/R/ref_period.R pkg/stacomir/R/ref_stage.R pkg/stacomir/R/ref_taxa.R pkg/stacomir/R/ref_textbox.R pkg/stacomir/R/ref_timestep.R pkg/stacomir/R/ref_timestep_daily.R pkg/stacomir/R/ref_year.R pkg/stacomir/R/report_annual.R pkg/stacomir/R/report_dc.R pkg/stacomir/R/report_df.R pkg/stacomir/R/report_env.R pkg/stacomir/R/report_ge_weight.R pkg/stacomir/R/report_mig.R pkg/stacomir/R/report_mig_char.R pkg/stacomir/R/report_mig_env.R pkg/stacomir/R/report_mig_interannual.R pkg/stacomir/R/report_mig_mult.R pkg/stacomir/R/report_ope.R pkg/stacomir/R/report_sample_char.R pkg/stacomir/R/report_sea_age.R pkg/stacomir/R/report_silver_eel.R pkg/stacomir/R/report_species.R pkg/stacomir/R/setAs.R pkg/stacomir/R/stacomi.R pkg/stacomir/R/stacomiR-package.R pkg/stacomir/R/utilities.R pkg/stacomir/cran-comments.md pkg/stacomir/data/r_ann.rda pkg/stacomir/data/r_ann_adour.rda pkg/stacomir/data/r_df.rda pkg/stacomir/data/r_env.rda pkg/stacomir/data/r_gew.rda pkg/stacomir/data/r_mig.rda pkg/stacomir/data/r_mig_char.rda pkg/stacomir/data/r_mig_dc.rda pkg/stacomir/data/r_mig_df.rda pkg/stacomir/data/r_mig_env.rda pkg/stacomir/data/r_mig_interannual.rda pkg/stacomir/data/r_mig_interannual_vichy.rda pkg/stacomir/data/r_mig_mult.rda pkg/stacomir/data/r_mig_mult_dc.rda pkg/stacomir/data/r_mig_mult_df.rda pkg/stacomir/data/r_mig_mult_ope.rda pkg/stacomir/data/r_mig_ope.rda pkg/stacomir/data/r_sample_char.rda pkg/stacomir/data/r_seaa.rda pkg/stacomir/data/r_silver.rda pkg/stacomir/dev/03_deploy.R pkg/stacomir/doc/stacomir.R pkg/stacomir/doc/stacomir.Rmd pkg/stacomir/doc/stacomir.html pkg/stacomir/doc/stacomir.md pkg/stacomir/inst/examples/report_annual-example.R pkg/stacomir/inst/examples/report_dc-example.R pkg/stacomir/inst/examples/report_ge_weight-example.R pkg/stacomir/inst/examples/report_mig_char-example.R pkg/stacomir/inst/examples/report_mig_interannual-example.R pkg/stacomir/inst/examples/report_species-example.R pkg/stacomir/inst/po/fr/LC_MESSAGES/R-stacomiR.mo pkg/stacomir/man/barplot-report_annual-method.Rd pkg/stacomir/man/calcule-report_ge_weight-method.Rd pkg/stacomir/man/calcule-report_sample_char-method.Rd pkg/stacomir/man/calcule-report_sea_age-method.Rd pkg/stacomir/man/calcule-report_silver_eel-method.Rd pkg/stacomir/man/charge-ref_choice-method.Rd pkg/stacomir/man/charge-ref_coe-method.Rd pkg/stacomir/man/charge-ref_dc-method.Rd pkg/stacomir/man/charge-ref_df-method.Rd pkg/stacomir/man/charge-ref_env-method.Rd pkg/stacomir/man/charge-ref_list-method.Rd pkg/stacomir/man/charge-ref_par-method.Rd pkg/stacomir/man/charge-ref_parqual-method.Rd pkg/stacomir/man/charge-ref_parquan-method.Rd pkg/stacomir/man/charge-ref_stage-method.Rd pkg/stacomir/man/charge-ref_taxa-method.Rd pkg/stacomir/man/charge-ref_textbox-method.Rd pkg/stacomir/man/charge-report_env-method.Rd pkg/stacomir/man/charge-report_mig-method.Rd pkg/stacomir/man/charge-report_mig_char-method.Rd pkg/stacomir/man/charge-report_mig_env-method.Rd pkg/stacomir/man/charge-report_mig_interannual-method.Rd pkg/stacomir/man/charge-report_mig_mult-method.Rd pkg/stacomir/man/charge-report_sample_char-method.Rd pkg/stacomir/man/charge-report_sea_age-method.Rd pkg/stacomir/man/charge-report_silver_eel-method.Rd pkg/stacomir/man/charge-report_species-method.Rd pkg/stacomir/man/charge.Rd pkg/stacomir/man/charge_complement-ref_parqual-method.Rd pkg/stacomir/man/charge_with_filter-ref_par-method.Rd pkg/stacomir/man/charge_with_filter-ref_parqual-method.Rd pkg/stacomir/man/charge_with_filter-ref_parquan-method.Rd pkg/stacomir/man/charge_with_filter-ref_stage-method.Rd pkg/stacomir/man/charge_with_filter-ref_taxa-method.Rd pkg/stacomir/man/choice_c-ref_choice-method.Rd pkg/stacomir/man/choice_c-ref_dc-method.Rd pkg/stacomir/man/choice_c-ref_df-method.Rd pkg/stacomir/man/choice_c-ref_env-method.Rd pkg/stacomir/man/choice_c-ref_list-method.Rd pkg/stacomir/man/choice_c-ref_par-method.Rd pkg/stacomir/man/choice_c-ref_stage-method.Rd pkg/stacomir/man/choice_c-ref_taxa-method.Rd pkg/stacomir/man/choice_c-ref_textbox-method.Rd pkg/stacomir/man/choice_c-ref_timestep_daily-method.Rd pkg/stacomir/man/choice_c-report_annual-method.Rd pkg/stacomir/man/choice_c-report_dc-method.Rd pkg/stacomir/man/choice_c-report_df-method.Rd pkg/stacomir/man/choice_c-report_env-method.Rd pkg/stacomir/man/choice_c-report_ge_weight-method.Rd pkg/stacomir/man/choice_c-report_mig-method.Rd pkg/stacomir/man/choice_c-report_mig_char-method.Rd pkg/stacomir/man/choice_c-report_mig_env-method.Rd pkg/stacomir/man/choice_c-report_mig_interannual-method.Rd pkg/stacomir/man/choice_c-report_mig_mult-method.Rd pkg/stacomir/man/choice_c-report_sample_char-method.Rd pkg/stacomir/man/choice_c-report_sea_age-method.Rd pkg/stacomir/man/choice_c-report_silver_eel-method.Rd pkg/stacomir/man/choice_c-report_species-method.Rd pkg/stacomir/man/colortable.Rd pkg/stacomir/man/connect-report_annual-method.Rd pkg/stacomir/man/connect-report_env-method.Rd pkg/stacomir/man/connect-report_ge_weight-method.Rd pkg/stacomir/man/connect-report_mig-method.Rd pkg/stacomir/man/connect-report_mig_env-method.Rd pkg/stacomir/man/connect-report_mig_interannual-method.Rd pkg/stacomir/man/connect-report_sample_char-method.Rd pkg/stacomir/man/connect-report_sea_age-method.Rd pkg/stacomir/man/connect-report_silver_eel-method.Rd pkg/stacomir/man/connect-report_species-method.Rd pkg/stacomir/man/envir_stacomi.Rd pkg/stacomir/man/figures/ pkg/stacomir/man/figures/README-rmmstd-1.png pkg/stacomir/man/figures/README-silver-1.png pkg/stacomir/man/fun_aggreg_for_plot.Rd pkg/stacomir/man/fun_char_spe.Rd pkg/stacomir/man/fun_date_extraction.Rd pkg/stacomir/man/fun_report_mig_interannual.Rd pkg/stacomir/man/fun_report_mig_mult.Rd pkg/stacomir/man/fun_report_mig_mult_overlaps.Rd pkg/stacomir/man/fun_stage_durif.Rd pkg/stacomir/man/fun_table_per_dis.Rd pkg/stacomir/man/fun_weight_conversion.Rd pkg/stacomir/man/fun_write_monthly.Rd pkg/stacomir/man/funbarchartDF.Rd pkg/stacomir/man/fungraph.Rd pkg/stacomir/man/fungraph_glasseel.Rd pkg/stacomir/man/funout.Rd pkg/stacomir/man/funplotreport_silver_eel.Rd pkg/stacomir/man/funstat.Rd pkg/stacomir/man/funtable.Rd pkg/stacomir/man/get_org.Rd pkg/stacomir/man/get_schema.Rd pkg/stacomir/man/getvalue-ref_period-method.Rd pkg/stacomir/man/graphdate.Rd pkg/stacomir/man/load_stacomi.Rd pkg/stacomir/man/model-report_ge_weight-method.Rd pkg/stacomir/man/plot-report_annual-missing-method.Rd pkg/stacomir/man/plot-report_env-missing-method.Rd pkg/stacomir/man/plot-report_ge_weight-missing-method.Rd pkg/stacomir/man/plot-report_mig-ANY-method.Rd pkg/stacomir/man/plot-report_mig_char-missing-method.Rd pkg/stacomir/man/plot-report_mig_env-missing-method.Rd pkg/stacomir/man/plot-report_mig_interannual-missing-method.Rd pkg/stacomir/man/plot-report_mig_mult-missing-method.Rd pkg/stacomir/man/plot-report_sample_char-missing-method.Rd pkg/stacomir/man/plot-report_sea_age-missing-method.Rd pkg/stacomir/man/plot-report_silver_eel-missing-method.Rd pkg/stacomir/man/plot-report_species-missing-method.Rd pkg/stacomir/man/print-report_mig-method.Rd pkg/stacomir/man/ref_choice-class.Rd pkg/stacomir/man/ref_coe-class.Rd pkg/stacomir/man/ref_dc-class.Rd pkg/stacomir/man/ref_df-class.Rd pkg/stacomir/man/ref_env-class.Rd pkg/stacomir/man/ref_horodate-class.Rd pkg/stacomir/man/ref_list-class.Rd pkg/stacomir/man/ref_par-class.Rd pkg/stacomir/man/ref_parqual-class.Rd pkg/stacomir/man/ref_parquan-class.Rd pkg/stacomir/man/ref_stage-class.Rd pkg/stacomir/man/ref_taxa-class.Rd pkg/stacomir/man/ref_textbox-class.Rd pkg/stacomir/man/ref_timestep-class.Rd pkg/stacomir/man/ref_timestepChar-class.Rd pkg/stacomir/man/ref_timestep_daily-class.Rd pkg/stacomir/man/ref_year-class.Rd pkg/stacomir/man/report_annual-class.Rd pkg/stacomir/man/report_dc-class.Rd pkg/stacomir/man/report_df-class.Rd pkg/stacomir/man/report_env-class.Rd pkg/stacomir/man/report_ge_weight-class.Rd pkg/stacomir/man/report_mig-class.Rd pkg/stacomir/man/report_mig_char-class.Rd pkg/stacomir/man/report_mig_env-class.Rd pkg/stacomir/man/report_mig_interannual-class.Rd pkg/stacomir/man/report_mig_mult-class.Rd pkg/stacomir/man/report_ope-class.Rd pkg/stacomir/man/report_sample_char-class.Rd pkg/stacomir/man/report_sea_age-class.Rd pkg/stacomir/man/report_silver_eel-class.Rd pkg/stacomir/man/report_species-class.Rd pkg/stacomir/man/setasqualitative-report_mig_char-method.Rd pkg/stacomir/man/stacomi.Rd pkg/stacomir/man/summary-report_dc-method.Rd pkg/stacomir/man/summary-report_df-method.Rd pkg/stacomir/man/summary-report_mig-method.Rd pkg/stacomir/man/summary-report_mig_char-method.Rd pkg/stacomir/man/summary-report_mig_interannual-method.Rd pkg/stacomir/man/summary-report_mig_mult-method.Rd pkg/stacomir/man/summary-report_sample_char-method.Rd pkg/stacomir/man/summary-report_sea_age-method.Rd pkg/stacomir/man/summary-report_silver_eel-method.Rd pkg/stacomir/man/summary-report_species-method.Rd pkg/stacomir/man/supprime-ref_coe-method.Rd pkg/stacomir/man/supprime-report_mig_interannual-method.Rd pkg/stacomir/man/supprime-report_sea_age-method.Rd pkg/stacomir/man/supprime.Rd pkg/stacomir/man/validity_ref_horodate.Rd pkg/stacomir/man/vector_to_listsql.Rd pkg/stacomir/man/write_database-report_ge_weight-method.Rd pkg/stacomir/man/write_database-report_mig-method.Rd pkg/stacomir/man/write_database-report_sea_age-method.Rd pkg/stacomir/po/R-stacomiR.pot pkg/stacomir/tests/testthat/ pkg/stacomir/tests/testthat/.gitignore pkg/stacomir/tests/testthat/test-00-stacomir.R pkg/stacomir/tests/testthat/test-00-zrefclasses.R pkg/stacomir/tests/testthat/test-01-report_mig_mult.R pkg/stacomir/tests/testthat/test-02-report_mig.R pkg/stacomir/tests/testthat/test-03-report_df.R pkg/stacomir/tests/testthat/test-04-report_dc.R pkg/stacomir/tests/testthat/test-05-report_sample_char.R pkg/stacomir/tests/testthat/test-06-report_mig_interannual.R pkg/stacomir/tests/testthat/test-07-report_sea_age.R pkg/stacomir/tests/testthat/test-09-report_annual.R pkg/stacomir/tests/testthat/test-10-report_env.R pkg/stacomir/tests/testthat/test-11-report_mig_env.R pkg/stacomir/tests/testthat/test-12-report_mig_char.R pkg/stacomir/tests/testthat/test-13-report_species.R pkg/stacomir/tests/testthat/test-14-report_ge_weight.R pkg/stacomir/vignettes/ pkg/stacomir/vignettes/stacomir.Rmd Log: version 0.6.0.7 Index: pkg/stacomir =================================================================== --- pkg/stacomir 2021-11-22 19:14:28 UTC (rev 613) +++ pkg/stacomir 2022-07-17 16:07:12 UTC (rev 614) Property changes on: pkg/stacomir ___________________________________________________________________ Modified: svn:ignore ## -9,3 +9,11 ## test .project .settings +.Rhistory +.Rprofile +.Rproj.user +*.yml +.git +stacomir.Rproj +Scripts +.gitignore Added: svn:global-ignores ## -0,0 +1 ## +Meta Modified: pkg/stacomir/DESCRIPTION =================================================================== --- pkg/stacomir/DESCRIPTION 2021-11-22 19:14:28 UTC (rev 613) +++ pkg/stacomir/DESCRIPTION 2022-07-17 16:07:12 UTC (rev 614) @@ -1,6 +1,6 @@ Package: stacomiR -Version: 0.6.0 -Date: 2021-11-16 +Version: 0.6.0.7 +Date: 2022-07-16 Title: Fish Migration Monitoring Authors at R: c(person("Cedric", "Briand", role = c("aut", "cre"), email = "cedric.briand00 at gmail.com"), person("Marion", "Legrand", role = "aut", email="tableau-salt-loire at logrami.fr"), @@ -24,6 +24,7 @@ 'fun_write_monthly.R' 'fungraph.R' 'fungraph_glasseel.R' + 'funschema.R' 'funstat.R' 'funtable.R' 'ref_choice.R' @@ -67,7 +68,7 @@ Depends: R (>= 4.0.0), methods, - stacomirtools (>= 0.6.0) + stacomirtools (>= 0.6.0.1) Imports: magrittr, intervals, @@ -88,7 +89,8 @@ mgcv, rlang, pool, - withr + withr, + scales Suggests: testthat, viridis, @@ -101,6 +103,6 @@ Lafage Denis [ctb], Grall Sebastien [ctb] Maintainer: Cedric Briand -RoxygenNote: 7.1.2 +RoxygenNote: 7.2.0 NeedsCompilation: no VignetteBuilder: knitr Modified: pkg/stacomir/NAMESPACE =================================================================== --- pkg/stacomir/NAMESPACE 2021-11-22 19:14:28 UTC (rev 613) +++ pkg/stacomir/NAMESPACE 2022-07-17 16:07:12 UTC (rev 614) @@ -12,6 +12,7 @@ export(fun_report_mig_interannual) export(fun_report_mig_mult) export(fun_report_mig_mult_overlaps) +export(fun_schema) export(fun_stage_durif) export(fun_write_monthly) export(funstat) @@ -55,6 +56,8 @@ import(xtable) importFrom(Hmisc,capitalize) importFrom(Hmisc,wtd.quantile) +importFrom(dplyr,across) +importFrom(dplyr,all_of) importFrom(dplyr,desc) importFrom(dplyr,do) importFrom(dplyr,filter) @@ -111,6 +114,7 @@ importFrom(pool,poolClose) importFrom(reshape2,dcast) importFrom(reshape2,melt) +importFrom(scales,breaks_pretty) importFrom(stats,AIC) importFrom(stats,as.formula) importFrom(stats,coef) Modified: pkg/stacomir/NEWS.md =================================================================== --- pkg/stacomir/NEWS.md 2021-11-22 19:14:28 UTC (rev 613) +++ pkg/stacomir/NEWS.md 2022-07-17 16:07:12 UTC (rev 614) @@ -1,3 +1,48 @@ +# stacomiR 0.6.0.7 + +* created function to load schema +* fixed problem with report_mig_char example (broken since new qualitative parameter for age was inserted in the database) +* fixed problem with x scale ugly https://forgemia.inra.fr/stacomi/stacomir/-/issues/27 fixed + + +# stacomiR 0.6.0.6 + +* allows to load ggplots after plot for report_dc and report_df +* fixes the problem of method for plot no longer working with signature(x = "report_dc", y = "ANY") and changed to +"missing" +* allows to pass arguments for colors in plot.report_dc +* fixed problems with broken translation see https://forgemia.inra.fr/stacomi/stacomir/-/issues/20 + +# stacomiR 0.6.0.5 + +* fixes the way environmental stations are loaded. + + +# stacomiR 0.6.0.4 + +* fixed different output for parameters between charge and charge_with_filter from ref_parquan and ref_parqual. +* the choice_c method also assigns subclasses in envir_stacomi. +* updated the set_as_qualitative method to avoid bugs when running it several times. +* rewrote tests + + +# stacomiR 0.6.0.3 + +* fixed problems for report interannual, allowing it for several DC including the graphs +* fixed but in report_mig / report_mig_mug write database for numbers of type "PONCTUEL" +* fixed problem in report_interannual, always writing the db when there is a difference between report_mig and report_annual e.g. +when operations are overlapping between years + +# stacomiR 0.6.0.2 + +* fixes the way taxa and stage are loaded +* replaced some french labels in slots + +# stacomiR 0.6.0.1 + +* Minor fix for Solaris, non portable path '~' now issue a warning asking the user for a new path +* Code coverage 79.2 % + # stacomiR 0.6.0 stacomir based on gwidget was dropped from CRAN in May 2020, it has been completely reprogrammed to remove all dependence to Modified: pkg/stacomir/R/create_generic.R =================================================================== --- pkg/stacomir/R/create_generic.R 2021-11-22 19:14:28 UTC (rev 613) +++ pkg/stacomir/R/create_generic.R 2022-07-17 16:07:12 UTC (rev 614) @@ -7,7 +7,7 @@ setGeneric("choice_c", def = function(object, ...) standardGeneric("choice_c")) #' Generic method to load referentials #' @param object Object -#' @param ... Additional parms +#' @param ... Additional parm #' @author cedric.briand #' @export setGeneric("charge", def = function(object, ...) standardGeneric("charge")) @@ -43,6 +43,10 @@ #' @param object Object #' @param ... Additional parms #' @author cedric.briand +#' @seealso \link{calcule.report_ge_weight}, \link{calcule.report_mig_char}, \link{calcule.report_mig_env}, +#' \link{calcule.report_mig_interannual},\link{calcule.report_mig_mult},\link{calcule.report_mig_mult}, +#' \link{calcule.report_sample_char}, \link{calcule.report_sea_age}, \link{calcule.report_silver_eel}, +#' \link{calcule.report_species} #' @export setGeneric("supprime", def = function(object, ...) standardGeneric("supprime")) #' Generic method write_database @@ -89,5 +93,5 @@ #' #' envir_stacomi \code{envir_stacomi <- new.env(parent = baseenv())} is the #' environment where most object created by the interface are stored -#' @author Cedric Briand \email{cedric.briand'at'eptb-vilaine.fr} +#' @author Cedric Briand \email{cedric.briand at eptb-vilaine.fr} "envir_stacomi" Modified: pkg/stacomir/R/fun_table_per_dis.R =================================================================== --- pkg/stacomir/R/fun_table_per_dis.R 2021-11-22 19:14:28 UTC (rev 613) +++ pkg/stacomir/R/fun_table_per_dis.R 2022-07-17 16:07:12 UTC (rev 614) @@ -10,11 +10,12 @@ #' the period #' @param libelle The postgres column ref.tr_typearretdisp_tar(libelle )description of the period #' type +#' @param color A named vector of color matching libelle. #' @param date Boolean, should the function return a POSIXt or date value #' @return A list #' @note returns either POSIXt or date if date=TRUE -#' @author Cedric Briand \email{cedric.briand'at'eptb-vilaine.fr} -fun_table_per_dis <- function(typeperiode, tempsdebut, tempsfin, libelle, date = TRUE) { +#' @author Cedric Briand \email{cedric.briand at eptb-vilaine.fr} +fun_table_per_dis <- function(typeperiode, tempsdebut, tempsfin, libelle, color, date = TRUE) { listeg = list() for (j in 1:5) { if (!date) { @@ -21,8 +22,10 @@ # pour utilisation ulterieure de la classe Posixct if (sum(unique(typeperiode) == j) > 0) { choice_periode <- typeperiode == j - liste <- list(debut = tempsdebut[choice_periode], fin = tempsfin[choice_periode], - nom = libelle[choice_periode][1]) + liste <- list(debut = tempsdebut[choice_periode], + fin = tempsfin[choice_periode], + nom = libelle[choice_periode][1], + color = color[choice_periode][1]) listeg[[as.character(j)]] <- liste } # pour utilisation ulterieure de la classe date @@ -29,8 +32,11 @@ } else { if (sum(unique(typeperiode) == j) > 0) { choice_periode <- typeperiode == j - liste <- list(debut = as.Date(tempsdebut[choice_periode]), fin = as.Date(tempsfin[choice_periode]), - nom = as.character(libelle[choice_periode][1])) + liste <- list( + debut = as.Date(tempsdebut[choice_periode]), + fin = as.Date(tempsfin[choice_periode]), + nom = as.character(libelle[choice_periode][1]), + color = color[choice_periode][1]) listeg[[as.character(j)]] <- liste } } Modified: pkg/stacomir/R/fun_write_monthly.R =================================================================== --- pkg/stacomir/R/fun_write_monthly.R 2021-11-22 19:14:28 UTC (rev 613) +++ pkg/stacomir/R/fun_write_monthly.R 2022-07-17 16:07:12 UTC (rev 614) @@ -1,6 +1,6 @@ #' This writes monthly data in t_reportmensuel_mens table #' -#' @note This function is launched by fun_Ecritreport_daily, the resum +#' @note This function is launched by fun_write_daily, the resum #' dataset is created by the \link{funstat} function #' #' @@ -10,37 +10,42 @@ #' @return No return value, called for side effects #' @export fun_write_monthly<-function(report_mig,resum,silent){ - # voir essai_table_reportmensuel.sql pour le format du tableau - # below not the most elegant way to do it but efficient - - t_reportmigrationmensuel_bme=stacomirtools::killfactor( + t_reportmigrationmensuel_bme <- stacomirtools::killfactor( cbind(report_mig at dc@dc_selected, - report_mig at taxa@data$tax_code, - report_mig at stage@data$std_code, - unique(strftime(as.POSIXlt(report_mig at time.sequence),"%Y")), # une valeur - rep(rownames(resum),(ncol(resum)-2)), # nb of month except columns report and label + report_mig at taxa@taxa_selected, + report_mig at stage@stage_selected, + as.integer(unique(strftime(as.POSIXlt(report_mig at time.sequence),"%Y"))), # une valeur bme_annee + rep(rownames(resum),(ncol(resum)-2)), # nb of month except columns report and label # bme_labelquantite stack(resum, select=c(2:(ncol(resum)-1))),# stack re-ordonne les tab de donnees ! - format(Sys.time(), "%Y-%m-%d %H:%M:%S"), + as.POSIXct(format(Sys.time(), "%Y-%m-%d %H:%M:%S")), get_org() ) ) + colnames(t_reportmigrationmensuel_bme) <- + c("bme_dis_identifiant","bme_tax_code","bme_std_code","bme_annee","bme_labelquantite","bme_valeur", + "bme_mois","bme_horodateexport","bme_org_code") + t_reportmigrationmensuel_bme$bme_mois<- as.integer(t_reportmigrationmensuel_bme$bme_mois) + # ecriture dans la base... + con <- new("ConnectionDB") + con <- connect(con) + on.exit(pool::poolClose(con at connection)) + pool::dbWriteTable(con at connection, + name = "temp_t_reportmigrationmensuel_bme", + value=t_reportmigrationmensuel_bme, + temporary=TRUE, + overwrite=TRUE) - # la requete pour la suppression + sql=paste( + "INSERT INTO ", + get_schema(), + "t_bilanmigrationmensuel_bme (", + "bme_dis_identifiant,bme_tax_code,bme_std_code,bme_annee,bme_labelquantite,bme_valeur, + bme_mois,bme_horodateexport,bme_org_code)", + " SELECT * FROM temp_t_reportmigrationmensuel_bme") + nline <- pool::dbExecute(con at connection, statement = sql) - - # ecriture dans la base... - - for (i in 1:nrow(t_reportmigrationmensuel_bme)) { - sql=paste("INSERT INTO ",get_schema(),"t_bilanmigrationmensuel_bme (", - "bme_dis_identifiant,bme_tax_code,bme_std_code,bme_annee,bme_labelquantite,bme_valeur,bme_mois,bme_horodateexport,bme_org_code)", - " VALUES ('",paste(t_reportmigrationmensuel_bme[i,],collapse="','"),"');",sep="") - con <- new("ConnectionDB") - con <- connect(con) - on.exit(pool::poolClose(con at connection)) - invisible(utils::capture.output(pool::dbExecute(con at connection, statement = sql))) - } # end for - if (!silent) funout(gettext("Writing monthly summary in the database\n",domain="R-stacomiR")) + if (!silent) funout(gettextf("Writing monthly summary (n=%s) in the database\n", nline, domain="R-stacomiR")) return(invisible(NULL)) } # end function Modified: pkg/stacomir/R/fungraph.R =================================================================== --- pkg/stacomir/R/fungraph.R 2021-11-22 19:14:28 UTC (rev 613) +++ pkg/stacomir/R/fungraph.R 2022-07-17 16:07:12 UTC (rev 614) @@ -19,7 +19,7 @@ #' @param ... additional parameters passed to matplot, main, ylab, ylim, lty, pch, bty, cex.main, #' it is currenly not a good idea to change xlim (numbers are wrong, the month plot covers all month, and legend placement is wrong #' @return No return value, called for side effects -#' @author Cedric Briand \email{cedric.briand"at"eptb-vilaine.fr} +#' @author Cedric Briand \email{cedric.briand at eptb-vilaine.fr} fungraph = function(report_mig, tableau, time.sequence, @@ -44,11 +44,11 @@ mypalette = c( "working" = tp[4], "stopped" = tp[6], - "listeperiode1" = tp[1], - "listeperiode2" = tp[2], - "listeperiode3" = tp[3], - "listeperiode4" = tp[5], - "listeperiode5" = tp[7], + "Fonc normal" = tp[1], + "Arr ponctuel" = tp[2], + "Arr maintenance" = tp[3], + "Dysfonc" = tp[5], + "Non connu" = tp[7], "ponctuel" = "indianred", "expert" = "chartreuse2", "calcule" = "deepskyblue", @@ -60,11 +60,11 @@ mypalette = c( "working" = color[1], "stopped" = color[2], - "listeperiode1" = color[3], - "listeperiode2" = color[4], - "listeperiode3" = color[5], - "listeperiode4" = color[6], - "listeperiode5" = color[7], + "Fonc normal" = color[3], + "Arr ponctuel" = color[4], + "Arr maintenance" = color[5], + "Dysfonc" = color[6], + "Non connu" = color[7], "mesure" = color[8], "calcule" = color[9], "expert" = color[10], @@ -352,6 +352,7 @@ tempsdebut = report_df at data$per_date_debut, tempsfin = report_df at data$per_date_fin, libelle = report_df at data$libelle, + color= mypalette[report_df at data$libelle], date = FALSE ) nomperiode <- vector() @@ -361,13 +362,13 @@ #recuperation du vecteur de noms (dans l'ordre) e partir de la liste nomperiode[j] <- substr(listeperiode[[j]]$nom, 1, 17) #ecriture pour chaque type de periode - color_periode = stringr::str_c("listeperiode", j) + color_periode = listeperiode[[j]]$color rect( xleft = graphdate(listeperiode[[j]]$debut), ybottom = 1.1, xright = graphdate(listeperiode[[j]]$fin), ytop = 2, - col = mypalette[color_periode], + col = color_periode, border = NA, lwd = 1 ) @@ -379,7 +380,7 @@ y = 1.2, legend = c(gettext("stop", domain = "R-stacomiR"), nomperiode), pch = c(15, 15), - col = c(mypalette["working"], mypalette["stopped"], mypalette[color_periodes]), + col = c(mypalette["working"], mypalette["stopped"], color_periodes), bty = "n", ncol = 7, text.width = (fin - debut) / 10 @@ -474,6 +475,7 @@ tempsdebut = report_dc at data$per_date_debut, tempsfin = report_dc at data$per_date_fin, libelle = report_dc at data$libelle, + color= mypalette[report_df at data$libelle], date = FALSE ) nomperiode <- vector() @@ -480,13 +482,13 @@ color_periodes <- vector() for (j in 1:length(listeperiode)) { nomperiode[j] <- substr(listeperiode[[j]]$nom, 1, 17) - color_periode = stringr::str_c("listeperiode", j) + color_periode <- listeperiode[[j]]$color rect( xleft = graphdate(listeperiode[[j]]$debut), ybottom = 1.1, xright = graphdate(listeperiode[[j]]$fin), ytop = 2, - col = mypalette[color_periode], + col = color_periode, border = NA, lwd = 1 ) @@ -497,7 +499,7 @@ y = 1.2, legend = gettext("working", "stopped", nomperiode, domain = "R-stacomiR"), pch = c(15, 15), - col = c(mypalette["working"], mypalette["stopped"], mypalette[color_periodes]), + col = c(mypalette["working"], mypalette["stopped"], color_periodes), bty = "n", ncol = length(listeperiode) + 2, text.width = (fin - debut) / 10 Modified: pkg/stacomir/R/fungraph_glasseel.R =================================================================== --- pkg/stacomir/R/fungraph_glasseel.R 2021-11-22 19:14:28 UTC (rev 613) +++ pkg/stacomir/R/fungraph_glasseel.R 2022-07-17 16:07:12 UTC (rev 614) @@ -20,615 +20,615 @@ #' @param ... additional parameters passed to plot, main, ylab, cex.main, font.main, type, xlim, ylim, lty, bty, pch #' it is not possible to change xlim #' @return No return value, called for side effects -#' @author Cedric Briand \email{cedric.briand"at"eptb-vilaine.fr} +#' @author Cedric Briand \email{cedric.briand at eptb-vilaine.fr} fungraph_glasseel = function(report_mig, - table, - time.sequence, - taxa, - stage, - dc = null, - silent, - color = NULL, - color_ope = NULL, - ...) { + table, + time.sequence, + taxa, + stage, + dc = null, + silent, + color = NULL, + color_ope = NULL, + ...) { oldpar <- par(no.readonly = TRUE) on.exit(par(oldpar)) - # color=null - # color calculation - if (is.null(color)) { - tp <- RColorBrewer::brewer.pal(12, "Paired") - mypalette = c( - "working" = tp[4], - # green - "stopped" = tp[6], - # red - "listeperiode1" = tp[1], - "listeperiode2" = tp[2], - "listeperiode3" = tp[3], - "listeperiode4" = tp[5], - "listeperiode5" = tp[7], - "eff" = tp[8], - #orange - "weight" = tp[10], - #purple - "unused1" = tp[11], - "unused1" = tp[12] - ) - } else { - if (length(color) != 11) - stop("The length of color must be 11") - mypalette = c( - "working" = color[1], - "stopped" = color[2], - "listeperiode1" = color[3], - "listeperiode2" = color[4], - "listeperiode3" = color[5], - "listeperiode4" = color[6], - "listeperiode5" = color[7], - "eff" = color[8], - "weight" = color[9], - "unused1" = color[10], - "unused2" = color[11] - ) - } - - - if (is.null(color_ope)) { - if (stacomirtools::is.odd(dc)) - brew = "Paired" - else - brew = "Accent" - color_ope = RColorBrewer::brewer.pal(8, brew) - } - - if (is.null(dc)) - dc = report_mig at dc@dc_selected[1] - annee = paste(unique(strftime(as.POSIXlt(time.sequence), "%Y")), collapse = - ",") - mois = months(time.sequence) - jour = strftime(as.POSIXlt(time.sequence), "%j") - index = table$No.pas + 1 - eff = table$Effectif_total - eff.p = table$Effectif_total.p - debut = unclass(as.Date(time.sequence[min(index)]))[[1]] - fin = unclass(as.Date(time.sequence[max(index)]))[[1]] - eff[eff == 0] <- NA #for graph need - eff.p[eff.p == 0] <- NA - dis_commentaire = as.character(report_mig at dc@data$dis_commentaires[report_mig at dc@data$dc %in% - dc]) - if (!silent) - funout(gettextf("Glass eels graph %s\n", dis_commentaire)) - ################################### - # Graph annuel couvrant sequence >0 - #################################### - - vec <- c(rep(1, 15), rep(2, 2), rep(3, 2), 4, rep(5, 6)) - mat <- matrix(vec, length(vec), 1) - layout(mat) - #par("bg"=grDevices::gray(0.8)) - graphics::par("mar" = c(3, 4, 3, 2) + 0.1) - dots <- list(...) - if (!"main" %in% names(dots)) - main = gettextf("Glass eels graph %s, %s, %s, %s", - dis_commentaire, - taxa, - stage, - annee, - domain = "R-stacomiR") - else - main = dots[["main"]] - if (!"ylab" %in% names(dots)) - ylab = gettext("Number of glass eels (x1000)", domain = "R-stacomiR") - else - ylab = dots[["ylab"]] - if (!"cex.main" %in% names(dots)) - cex.main = 1 - else - cex.main = dots[["cex.main"]] - if (!"font.main" %in% names(dots)) - font.main = 1 - else - font.main = dots[["font.main"]] - if (!"type" %in% names(dots)) - type = "h" - else - type = dots[["type"]] - if (!"xlim" %in% names(dots)) - xlim = c(debut, fin) - else - xlim = dots[["xlim"]] - if (!"ylim" %in% names(dots)) - ylim = c(0, max(eff / 1000, na.rm = TRUE)) * 1.2 - else - xlim = c(debut, fin)#dots[["xlim"]] # currently this argument is ignored - if (!"cex" %in% names(dots)) - cex = 1 - else - cex = dots[["cex"]] - if (!"lty" %in% names(dots)) - lty = 1 - else - lty = dots[["lty"]] - if (!"pch" %in% names(dots)) - pch = 16 - else - pch = dots[["pch"]] - if (!"bty" %in% names(dots)) - bty = "l" - else - bty = dots[["bty"]] - plot( - x = as.Date(time.sequence, "Europe/Paris"), - y = eff / 1000, - col = mypalette["eff"], - type = type, - xlim = xlim, - ylim = ylim, - lty = lty, - xaxt = "n", - ylab = ylab, - #xlab="date", - cex.main = cex.main, - font.main = font.main, - main = main, - cex = cex, - pch = pch, - bty = bty - ) - #print(plot,position = c(0, .3, 1, .9), more = TRUE) - r <- as.Date(round(range(time.sequence), "day")) - axis.Date(1, at = seq(r[1], r[2], by = "weeks"), format = "%d-%b") - - points( - as.Date(time.sequence, "Europe/Paris"), - eff.p / 1000, - type = type, - lty = lty, - col = mypalette["weight"] - ) - - legend( - x = "topright", - inset = 0.01, - legend = gettext("weighted", "counted", domain = "R-stacomiR"), - pch = c(16, 16), - col = mypalette[c("weight", "eff")] - ) - ###################################### - # text labels for numbers and weights - ###################################### - text( - x = debut + (fin - debut) / 8, - y = max(eff / 1000, na.rm = TRUE) * 1.15, - labels = paste(round( - sum(table$poids_depuis_effectifs, na.rm = TRUE) / 1000, 2 - ), " kg"), - col = mypalette["eff"], - adj = 1, - cex = cex - ) - text( - x = debut + 3 * (fin - debut) / 8 , - y = max(eff / 1000, na.rm = TRUE) * 1.15, - labels = paste("N=", round( - sum(table$Effectif_total.e, na.rm = TRUE) - )), - col = mypalette["eff"], - adj = 1, - cex = cex - ) - text( - x = debut + (fin - debut) / 8, - y = max(eff / 1000, na.rm = TRUE) * 1.2, - labels = paste(round( - sum(table$Poids_total, na.rm = TRUE) / 1000, 2 - ), " kg"), - col = mypalette["weight"], - adj = 1, - cex = cex - ) - text( - x = debut + 3 * (fin - debut) / 8, - y = max(eff / 1000, na.rm = TRUE) * 1.2, - labels = paste("N=", round(sum(eff.p, na.rm = TRUE))), - col = mypalette["weight"], - adj = 1, - cex = cex - ) - text( - x = debut + 3 + (fin - debut) / 8, - y = max(eff / 1000, na.rm = TRUE) * 1.1, - labels = paste(round( - sum(table$Poids_total, table$poids_depuis_effectifs, na.rm = TRUE) / 1000, - 2 - ), " kg"), - col = "black", - adj = 1, - cex = cex - ) - text( - x = debut + 3 * (fin - debut) / 8, - y = max(eff / 1000, na.rm = TRUE) * 1.1, - labels = paste("N=", round(sum(eff, na.rm = TRUE))), - col = "black", - adj = 1, - cex = cex - ) - segments( - x0 = debut, - y0 = max(eff / 1000, na.rm = TRUE) * 1.125, - x1 = debut + 3 * (fin - debut) / 8, - y1 = max(eff / 1000, na.rm = TRUE) * 1.125 - ) - - - report_ope <- get("report_ope", envir = envir_stacomi) - t_operation_ope <- - report_ope at data[report_ope at data$ope_dic_identifiant == dc, ] - dif = difftime(t_operation_ope$ope_date_fin, - t_operation_ope$ope_date_debut, - units = "days") - - if (!silent) { - funout(gettextf( - "number of operations =%s\n", - nrow(t_operation_ope), - domain = "R-stacomiR" - )) - funout(gettextf("average trapping time = %sdays\n", round(mean( - as.numeric(dif) - ), 2), domain = "R-stacomiR")) - funout(gettextf("maximum term = %sdays\n", round(max( - as.numeric(dif) - ), 2), domain = "R-stacomiR")) - funout(gettextf("minimum term = %sdays\n", round(min( - as.numeric(dif) - ), 2), domain = "R-stacomiR")) - } - - df <- report_mig at dc@data$df[report_mig at dc@data$dc == dc] - report_df <- get("report_df", envir = envir_stacomi) - report_dc <- get("report_dc", envir = envir_stacomi) - report_df at data <- - report_df at data[report_df at data$per_dis_identifiant == df, ] - report_dc at data <- - report_dc at data[report_dc at data$per_dis_identifiant == dc, ] - - - graphdate <- function(vectordate) { - attributes(vectordate) <- NULL - unclass(vectordate) - } - - - ################################### - # creation d'un graphique vide (2) - ################################### - - graphics::par("mar" = c(0, 4, 0, 2) + 0.1) - plot( - as.Date(time.sequence), - seq(0, 3, length.out = length(eff)), - xlim = xlim, - type = "n", - xlab = "", - xaxt = "n", - yaxt = "n", - ylab = gettext("Fishway", domain = "R-stacomiR"), - bty = "n", - cex = cex + 0.2 - ) - - ################################### - # Time for dc operation - ################################### - - if (dim(report_df at data)[1] == 0) { - rect( - xleft = debut, - ybottom = 2.1, - xright = fin, - ytop = 3, - col = "grey", - border = NA, - lwd = 1 - ) - rect( - xleft = debut, - ybottom = 1.1, - xright = fin, - ytop = 2, - col = "grey40", - border = NA, - lwd = 1 - ) - legend( - x = "bottom", - legend = gettext("Unknown working", "Unknow operation type", domain = - "R-stacomiR"), - pch = c(16, 16), - col = c("grey", "grey40"), - horiz = TRUE, - bty = "n" - ) - - - } else { - # si il sort quelque chose - if (sum(report_df at data$per_etat_fonctionnement == 1) > 0) { - rect( - xleft = graphdate(as.Date(report_df at data$per_date_debut[report_df at data$per_etat_fonctionnement == - 1])), - ybottom = 2.1, - xright = graphdate(as.Date(report_df at data$per_date_fin[report_df at data$per_etat_fonctionnement == - 1])), - ytop = 3, - col = mypalette["working"], - border = NA, - lwd = 1 - ) - } - if (sum(report_df at data$per_etat_fonctionnement == 0) > 0) { - rect( - xleft = graphdate(as.Date(report_df at data$per_date_debut[report_df at data$per_etat_fonctionnement == - 0])), - ybottom = 2.1, - xright = graphdate(as.Date(report_df at data$per_date_fin[report_df at data$per_etat_fonctionnement == - 0])), - ytop = 3, - col = mypalette["stopped"], - border = NA, - lwd = 1 - ) - } - #creation d'une liste par categorie d'arret contenant vecteurs dates - listeperiode <- - fun_table_per_dis( - typeperiode = report_df at data$per_tar_code, - tempsdebut = report_df at data$per_date_debut, - tempsfin = report_df at data$per_date_fin, - libelle = report_df at data$libelle - ) - nomperiode <- vector() - color_periodes <- - vector() # a vector of colors, one per period type in listeperiode - for (j in 1:length(listeperiode)) { - #recuperation du vecteur de noms (dans l'ordre) e partir de la liste - nomperiode[j] <- substr(listeperiode[[j]]$nom, 1, 17) - #ecriture pour chaque type de periode - color_periode = stringr::str_c("listeperiode", j) - rect( - xleft = graphdate(listeperiode[[j]]$debut), - ybottom = 1.1, - xright = graphdate(listeperiode[[j]]$fin), - ytop = 2, - col = mypalette[color_periode], - border = NA, - lwd = 1 - ) - color_periodes <- c(color_periodes, color_periode) - } - # below the colors for operation are from 4 to 3+ntypeoperation - legend ( - x = debut, - y = 1.2, - legend = gettext("working", "stopped", nomperiode, domain = "R-stacomiR"), - pch = c(15, 15), - col = c(mypalette["working"], mypalette["stopped"], mypalette[color_periodes]), - bty = "n", - ncol = length(listeperiode) + 2, - text.width = (fin - debut) / 10 - ) - } - - ################################### - # creation d'un graphique vide (3=DC) - ################################### - - - graphics::par("mar" = c(0, 4, 0, 2) + 0.1) - plot( - as.Date(time.sequence), - seq(0, 3, length.out = length(eff)), - xlim = xlim, - type = "n", - xlab = "", - xaxt = "n", - yaxt = "n", - ylab = gettext("CD", domain = "R-stacomiR"), - bty = "n", - cex = cex + 0.2 - ) - ################################### - # time for DC (counting device) operation - ################################### - - - if (dim(report_dc at data)[1] == 0) { - rect( - xleft = debut, - ybottom = 2.1, - xright = fin, - ytop = 3, - col = "grey", - border = NA, - lwd = 1 - ) - - rect( - xleft = debut, - ybottom = 1.1, - xright = fin, - ytop = 2, - col = "grey40", - border = NA, - lwd = 1 - ) - legend( - x = "bottom", - legend = gettext("Unknown working", "Unknow operation type", domain = - "R-stacomiR"), - pch = c(16, 16), - col = c("grey", "grey40"), - horiz = TRUE, - #ncol=5, - bty = "n" - ) - - - } else { - if (sum(report_dc at data$per_etat_fonctionnement == 1) > 0) { - rect( - xleft = graphdate(as.Date(report_dc at data$per_date_debut[report_dc at data$per_etat_fonctionnement == - 1])), - ybottom = 2.1, - xright = graphdate(as.Date(report_dc at data$per_date_fin[report_dc at data$per_etat_fonctionnement == - 1])), - ytop = 3, - col = mypalette["working"], - border = NA, - lwd = 1 - ) - } - if (sum(report_dc at data$per_etat_fonctionnement == 0) > 0) - { - rect( - xleft = graphdate(as.Date(report_dc at data$per_date_debut[report_dc at data$per_etat_fonctionnement == - 0])), - ybottom = 2.1, - xright = graphdate(as.Date(report_dc at data$per_date_fin[report_dc at data$per_etat_fonctionnement == - 0])), - ytop = 3, - col = mypalette["stopped"], - border = NA, - lwd = 1 - ) - } - listeperiode <- - fun_table_per_dis( - typeperiode = report_dc at data$per_tar_code, - tempsdebut = report_dc at data$per_date_debut, - tempsfin = report_dc at data$per_date_fin, - libelle = report_dc at data$libelle - ) - nomperiode <- vector() - color_periodes <- vector() - for (j in 1:length(listeperiode)) { - nomperiode[j] <- substr(listeperiode[[j]]$nom, 1, 17) - color_periode = stringr::str_c("listeperiode", j) - rect( - xleft = graphdate(listeperiode[[j]]$debut), - ybottom = 1.1, - xright = graphdate(listeperiode[[j]]$fin), - ytop = 2, - col = mypalette[color_periode], - border = NA, - lwd = 1 - ) - color_periodes <- c(color_periodes, color_periode) - } - - legend ( - x = debut, - y = 1.2, - legend = gettext("working", "stopped", nomperiode, domain = "R-stacomiR"), - pch = c(15, 15), - col = c(mypalette["working"], mypalette["stopped"], mypalette[color_periodes]), - bty = "n", - ncol = length(listeperiode) + 2, - text.width = (fin - debut) / 10 - ) - } - - ################################### - # creation d'un graphique vide (4=OP) - ################################### - - - graphics::par("mar" = c(0, 4, 0, 2) + 0.1) - plot( - as.Date(time.sequence), - seq(0, 1, length.out = length(eff)), - xlim = xlim, - type = "n", - xlab = "", - xaxt = "n", - yaxt = "n", - ylab = gettext("Op", domain = "R-stacomiR"), - bty = "n", - cex = cex + 0.2 - ) - ################################### - # operations - ################################### - rect( - xleft = graphdate(as.Date(t_operation_ope$ope_date_debut)), - ybottom = 0, - xright = graphdate(as.Date(t_operation_ope$ope_date_fin)), - ytop = 1, - col = color_ope, - border = NA, - lwd = 1 - ) - - - ################################### - # Graph mensuel - #################################### - graphics::par("mar" = c(4, 4, 1, 2) + 0.1) - petitmois = substr(as.character(mois), 1, 3) - effmois = tapply(eff, mois, sum, na.rm = TRUE)[c(5, 4, 9, 2, 8, 7, 6, 1, 12, 11, 10, 3)] - effmois.p = tapply(eff.p, mois, sum, na.rm = TRUE)[c(5, 4, 9, 2, 8, 7, 6, 1, 12, 11, 10, 3)] - effmois <- data.frame("eff" = effmois) - effmois.p <- data.frame("eff" = effmois.p) - tablemens <- - rbind( - cbind( - "eff" = effmois - effmois.p, - "type" = 2, - "mois" = 1:12 - ), - cbind(effmois.p, "type" = "1", "mois" = 1:12) - ) - - - superpose.polygon <- lattice::trellis.par.get("superpose.polygon") [TRUNCATED] To get the complete diff run: svnlook diff /svnroot/stacomir -r 614 From noreply at r-forge.r-project.org Sun Jul 17 18:11:57 2022 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Sun, 17 Jul 2022 18:11:57 +0200 (CEST) Subject: [Stacomir-commits] r615 - in pkg/stacomirtools: . R dev man tests/testthat Message-ID: <20220717161157.EE41E1854D5@r-forge.r-project.org> Author: briand Date: 2022-07-17 18:11:57 +0200 (Sun, 17 Jul 2022) New Revision: 615 Added: pkg/stacomirtools/CRAN-RELEASE pkg/stacomirtools/LICENSE pkg/stacomirtools/cran-comments.md pkg/stacomirtools/dev/cran_comments_0.6.0.md.Rmd pkg/stacomirtools/tests/testthat/helper.R Modified: pkg/stacomirtools/ pkg/stacomirtools/.Rbuildignore pkg/stacomirtools/.Rinstignore pkg/stacomirtools/DESCRIPTION pkg/stacomirtools/NEWS.md pkg/stacomirtools/R/ConnectionDB.R pkg/stacomirtools/R/ConnectionODBC.R pkg/stacomirtools/R/RequeteDB.R pkg/stacomirtools/R/RequeteDBwhere.R pkg/stacomirtools/R/RequeteDBwheredate.R pkg/stacomirtools/R/RequeteODBC.R pkg/stacomirtools/R/RequeteODBCwhere.R pkg/stacomirtools/R/RequeteODBCwheredate.R pkg/stacomirtools/R/utilities.R pkg/stacomirtools/README.Rmd pkg/stacomirtools/README.md pkg/stacomirtools/dev/03_deploy.R pkg/stacomirtools/man/ConnectionDB-class.Rd pkg/stacomirtools/man/ConnectionODBC-class.Rd pkg/stacomirtools/man/RequeteDB-class.Rd pkg/stacomirtools/man/RequeteDBwhere-class.Rd pkg/stacomirtools/man/RequeteODBC-class.Rd pkg/stacomirtools/man/RequeteODBCwhere-class.Rd pkg/stacomirtools/man/chnames.Rd pkg/stacomirtools/man/connect-ConnectionDB-method.Rd pkg/stacomirtools/man/connect-ConnectionODBC-method.Rd pkg/stacomirtools/man/connect-RequeteODBC-method.Rd pkg/stacomirtools/man/connect-RequeteODBCwhere-method.Rd pkg/stacomirtools/man/connect-RequeteODBCwheredate-method.Rd pkg/stacomirtools/man/ex.Rd pkg/stacomirtools/man/funhtml.Rd pkg/stacomirtools/man/getquery-RequeteDB-method.Rd pkg/stacomirtools/man/getquery.Rd pkg/stacomirtools/man/induk.Rd pkg/stacomirtools/man/killfactor.Rd pkg/stacomirtools/man/query-RequeteDB-method.Rd pkg/stacomirtools/man/query-RequeteDBwhere-method.Rd pkg/stacomirtools/man/query-RequeteDBwheredate-method.Rd pkg/stacomirtools/man/stacomirtools-deprecated.Rd pkg/stacomirtools/man/stacomirtools.Rd pkg/stacomirtools/man/tab2df.Rd pkg/stacomirtools/tests/testthat/test-00-connectiondb.R pkg/stacomirtools/tests/testthat/test-01-connectionODBC.R pkg/stacomirtools/tests/testthat/test-02-requeteDB.R pkg/stacomirtools/tests/testthat/test-03-requeteODBC.R pkg/stacomirtools/tests/testthat/test-04-requeteODBCwhere.R pkg/stacomirtools/tests/testthat/test-05-requeteODBCwheredate.R pkg/stacomirtools/tests/testthat/test-06-requeteDBwhere.R pkg/stacomirtools/tests/testthat/test-07-requeteDBwheredate.R Log: Index: pkg/stacomirtools =================================================================== --- pkg/stacomirtools 2022-07-17 16:07:12 UTC (rev 614) +++ pkg/stacomirtools 2022-07-17 16:11:57 UTC (rev 615) Property changes on: pkg/stacomirtools ___________________________________________________________________ Modified: svn:ignore ## -1,3 +1,6 ## chk .project .settings +.git +.gitlab-ci.yml +.Rprofile Modified: pkg/stacomirtools/.Rbuildignore =================================================================== --- pkg/stacomirtools/.Rbuildignore 2022-07-17 16:07:12 UTC (rev 614) +++ pkg/stacomirtools/.Rbuildignore 2022-07-17 16:11:57 UTC (rev 615) @@ -4,4 +4,8 @@ out$ ^dev ^README\.Rmd$ -^www \ No newline at end of file +^www +^\.gitlab-ci.yml$ +^LICENSE$ +^cran-comments.md$ +^CRAN-RELEASE$ Modified: pkg/stacomirtools/.Rinstignore =================================================================== --- pkg/stacomirtools/.Rinstignore 2022-07-17 16:07:12 UTC (rev 614) +++ pkg/stacomirtools/.Rinstignore 2022-07-17 16:11:57 UTC (rev 615) @@ -1,2 +1,4 @@ inst/config/test.R -dev \ No newline at end of file +dev +^\.gitlab-ci.yml$ +LICENSE \ No newline at end of file Added: pkg/stacomirtools/CRAN-RELEASE =================================================================== --- pkg/stacomirtools/CRAN-RELEASE (rev 0) +++ pkg/stacomirtools/CRAN-RELEASE 2022-07-17 16:11:57 UTC (rev 615) @@ -0,0 +1,2 @@ +This package was submitted to CRAN on 2022-04-29. +Once it is accepted, delete this file and tag the release (commit 617a2f7). Modified: pkg/stacomirtools/DESCRIPTION =================================================================== --- pkg/stacomirtools/DESCRIPTION 2022-07-17 16:07:12 UTC (rev 614) +++ pkg/stacomirtools/DESCRIPTION 2022-07-17 16:11:57 UTC (rev 615) @@ -1,36 +1,31 @@ -Package: stacomirtools -Version: 0.6.0 -Date: 2021-11-09 -Title: Connection Class for Package stacomiR -Authors at R: c( - person("Cedric", "Briand", role = c("aut", "cre"), email = "cedric.briand00 at gmail.com"), - person("Marion", "Legrand", role = "aut", email = "tableau-salt-loire at logrami.fr"), - person("Beaulaton", "Laurent", role = "ctb", email = "laurent.beaulaton at ofb.gouv.fr")) -Author: Cedric Briand [aut, cre], - Marion Legrand [aut], - Beaulaton Laurent [ctb] -Maintainer: Cedric Briand -Description: S4 class wrappers for the 'ODBC' and Pool DBI connection, also provides some - utilities to paste small datasets to clipboard, rename columns. It is used by the package 'stacomiR' for - connections to the database. Development versions of 'stacomiR' are available in R-forge. -License: GPL (>= 2) -Collate: 'ConnectionODBC.R' 'RequeteODBC.R' 'RequeteODBCwhere.R' - 'RequeteODBCwheredate.R' 'utilities.R' 'stacomirtools.R' - 'stacomirtools-package.R''ConnectionDB.R' 'RequeteDB.R' 'RequeteDBwhere.R' - 'RequeteDBwheredate.R' 'zzz.R' -LazyLoad: yes -Depends: RODBC, DBI, pool -Imports: - methods, - xtable, - utils, - RPostgres -Suggests: testthat -Repository: CRAN -Repository/R-Forge/Project: stacomir -Repository/R-Forge/Revision: 540 -Repository/R-Forge/DateTimeStamp: 2018-10-06 06:18:25 -Date/Publication: 2018-10-06 07:40:02 UTC -NeedsCompilation: no -Packaged: 2018-10-06 06:25:10 UTC; rforge -RoxygenNote: 7.1.2 +Package: stacomirtools +Version: 0.6.0.1 +Date: 2022-04-28 +Title: Connection Class for Package stacomiR +Authors at R: c( + person("Cedric", "Briand", role = c("aut", "cre"), email = "cedric.briand00 at gmail.com"), + person("Marion", "Legrand", role = "aut", email = "tableau-salt-loire at logrami.fr"), + person("Beaulaton", "Laurent", role = "ctb", email = "laurent.beaulaton at ofb.gouv.fr")) +Author: Cedric Briand [aut, cre], + Marion Legrand [aut], + Beaulaton Laurent [ctb] +Maintainer: Cedric Briand +Description: S4 class wrappers for the 'ODBC' and Pool DBI connection, also provides some + utilities to paste small datasets to clipboard, rename columns. It is used by the package 'stacomiR' for + connections to the database. Development versions of 'stacomiR' are available in R-forge. +License: GPL (>= 2) +Collate: 'ConnectionODBC.R' 'RequeteODBC.R' 'RequeteODBCwhere.R' + 'RequeteODBCwheredate.R' 'utilities.R' 'stacomirtools.R' + 'stacomirtools-package.R''ConnectionDB.R' 'RequeteDB.R' 'RequeteDBwhere.R' + 'RequeteDBwheredate.R' 'zzz.R' +LazyLoad: yes +Depends: RODBC, DBI, pool +Imports: + methods, + xtable, + utils, + RPostgres +Suggests: testthat, + withr +NeedsCompilation: no +RoxygenNote: 7.1.2 Added: pkg/stacomirtools/LICENSE =================================================================== --- pkg/stacomirtools/LICENSE (rev 0) +++ pkg/stacomirtools/LICENSE 2022-07-17 16:11:57 UTC (rev 615) @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that [TRUNCATED] To get the complete diff run: svnlook diff /svnroot/stacomir -r 615